From 7c87514ca8957bbffe44b9cfe3d4ae45f614acdb Mon Sep 17 00:00:00 2001 From: Marcos Spessatto Defendi Date: Thu, 1 Nov 2018 17:33:07 -0300 Subject: [PATCH] Convert rocketchat-action-links to main module structure (#12503) * First wave of removal of Meteor global * Second wave of removal of Meteor global * Third wave of removal of Meteor global * Fix tests * Remove global variable SHA256 * Remove global variable WebApp * Remove global variable EJSON * Remove global variable Email * Remove global variable HTTP * Remove global variable Random * Remove global variable ReactiveDict * Remove global variable ReactiveVar * Remove global variable Accounts * Remove globals variables Match and check * Remove global variable Mongo * Remove global variable moment * Remove global variable Tracker * Remove global variable Blaze * Remove global variables FlowRouter and BlazeLayout * Add FlowRouter to eslint global in tests file * Remove global variable DDPRateLimiter * Remove global variable Session * Remove global variable UAParser * Remove global variable Promise * Remove global variable Reload * Remove global variable CryptoJS * Remove global variable Template * Remove global variable TAPi18n * Remove global variable TAPi18next * Exposing t function from rocketchat:ui package * Convert chatpal search to main module structure * Fix ESLint * Convert meteor-accounts-saml to main module structure * Convert meteor-autocomplete to main module structure * Convert meteor-timesync package to modular structure * exposing modal global variable * Convert rocketchat-2fa to main module structure * Change exposing of fireGlobalEvent function from window to package * Moved handleError function from client to rocketchat:lib package * Convert rocketchat:action-linsk package to main module structure * disable eslint no-undef in fireGlobalEvent --- .../both/lib/actionLinks.js | 2 ++ .../rocketchat-action-links/client/index.js | 4 ++++ .../rocketchat-action-links/client/init.js | 3 ++- .../client/lib/actionLinks.js | 1 + packages/rocketchat-action-links/package.js | 23 ++++++++----------- .../server/actionLinkHandler.js | 1 + .../rocketchat-action-links/server/index.js | 2 ++ .../rocketchat-lib/client}/lib/handleError.js | 2 +- packages/rocketchat-lib/package.js | 2 ++ .../rocketchat-ui/client/lib/fireEvent.js | 2 +- packages/rocketchat-ui/package.js | 5 ++-- 11 files changed, 28 insertions(+), 19 deletions(-) create mode 100644 packages/rocketchat-action-links/client/index.js create mode 100644 packages/rocketchat-action-links/server/index.js rename {client => packages/rocketchat-lib/client}/lib/handleError.js (92%) diff --git a/packages/rocketchat-action-links/both/lib/actionLinks.js b/packages/rocketchat-action-links/both/lib/actionLinks.js index 96c619a760e..1ca27418a05 100644 --- a/packages/rocketchat-action-links/both/lib/actionLinks.js +++ b/packages/rocketchat-action-links/both/lib/actionLinks.js @@ -1,4 +1,6 @@ import { Meteor } from 'meteor/meteor'; +import { RocketChat } from 'meteor/rocketchat:lib'; + // Action Links namespace creation. RocketChat.actionLinks = { actions: {}, diff --git a/packages/rocketchat-action-links/client/index.js b/packages/rocketchat-action-links/client/index.js new file mode 100644 index 00000000000..fa97e5534dc --- /dev/null +++ b/packages/rocketchat-action-links/client/index.js @@ -0,0 +1,4 @@ +import '../both/lib/actionLinks'; +import './stylesheets/actionLinks.css'; +import './lib/actionLinks'; +import './init'; diff --git a/packages/rocketchat-action-links/client/init.js b/packages/rocketchat-action-links/client/init.js index bea7736137c..67332f38482 100644 --- a/packages/rocketchat-action-links/client/init.js +++ b/packages/rocketchat-action-links/client/init.js @@ -1,6 +1,7 @@ -/* globals fireGlobalEvent */ import { Blaze } from 'meteor/blaze'; import { Template } from 'meteor/templating'; +import { RocketChat, handleError } from 'meteor/rocketchat:lib'; +import { fireGlobalEvent } from 'meteor/rocketchat:ui'; Template.room.events({ 'click .action-link'(event, instance) { diff --git a/packages/rocketchat-action-links/client/lib/actionLinks.js b/packages/rocketchat-action-links/client/lib/actionLinks.js index 2dcee6384e1..fdda7759398 100644 --- a/packages/rocketchat-action-links/client/lib/actionLinks.js +++ b/packages/rocketchat-action-links/client/lib/actionLinks.js @@ -1,4 +1,5 @@ import { Meteor } from 'meteor/meteor'; +import { RocketChat, handleError } from 'meteor/rocketchat:lib'; // Action Links Handler. This method will be called off the client. RocketChat.actionLinks.run = (name, messageId, instance) => { diff --git a/packages/rocketchat-action-links/package.js b/packages/rocketchat-action-links/package.js index b1376bfc748..04a37d6dff1 100644 --- a/packages/rocketchat-action-links/package.js +++ b/packages/rocketchat-action-links/package.js @@ -6,18 +6,13 @@ Package.describe({ }); Package.onUse(function(api) { - api.use('ecmascript'); - api.use('templating'); - api.use('rocketchat:lib'); - api.use('rocketchat:theme'); - api.use('rocketchat:ui'); - - api.addFiles('both/lib/actionLinks.js'); - - api.addFiles('client/lib/actionLinks.js', 'client'); - api.addFiles('client/init.js', 'client'); - - api.addFiles('client/stylesheets/actionLinks.css', 'client'); - - api.addFiles('server/actionLinkHandler.js', 'server'); + api.use([ + 'ecmascript', + 'templating', + 'rocketchat:lib', + 'rocketchat:theme', + 'rocketchat:ui', + ]); + api.mainModule('client/index.js', 'client'); + api.mainModule('server/index.js', 'server'); }); diff --git a/packages/rocketchat-action-links/server/actionLinkHandler.js b/packages/rocketchat-action-links/server/actionLinkHandler.js index 93398625bdd..7fd102c2943 100644 --- a/packages/rocketchat-action-links/server/actionLinkHandler.js +++ b/packages/rocketchat-action-links/server/actionLinkHandler.js @@ -1,4 +1,5 @@ import { Meteor } from 'meteor/meteor'; +import { RocketChat } from 'meteor/rocketchat:lib'; // Action Links Handler. This method will be called off the client. Meteor.methods({ diff --git a/packages/rocketchat-action-links/server/index.js b/packages/rocketchat-action-links/server/index.js new file mode 100644 index 00000000000..8db8549e10d --- /dev/null +++ b/packages/rocketchat-action-links/server/index.js @@ -0,0 +1,2 @@ +import '../both/lib/actionLinks'; +import './actionLinkHandler'; diff --git a/client/lib/handleError.js b/packages/rocketchat-lib/client/lib/handleError.js similarity index 92% rename from client/lib/handleError.js rename to packages/rocketchat-lib/client/lib/handleError.js index b7301d7f0c7..04b523e6680 100644 --- a/client/lib/handleError.js +++ b/packages/rocketchat-lib/client/lib/handleError.js @@ -3,7 +3,7 @@ import _ from 'underscore'; import s from 'underscore.string'; import toastr from 'toastr'; -this.handleError = function(error, useToastr = true) { +handleError = function(error, useToastr = true) { if (_.isObject(error.details)) { for (const key in error.details) { if (error.details.hasOwnProperty(key)) { diff --git a/packages/rocketchat-lib/package.js b/packages/rocketchat-lib/package.js index 86d5176eb92..45e4bf360fb 100644 --- a/packages/rocketchat-lib/package.js +++ b/packages/rocketchat-lib/package.js @@ -221,6 +221,7 @@ Package.onUse(function(api) { api.addFiles('client/lib/roomTypes.js', 'client'); api.addFiles('client/lib/userRoles.js', 'client'); api.addFiles('client/lib/Layout.js', 'client'); + api.addFiles('client/lib/handleError.js', 'client'); // CLIENT LIB STARTUP api.addFiles('client/lib/startup/commands.js', 'client'); @@ -250,6 +251,7 @@ Package.onUse(function(api) { // EXPORT api.export('RocketChat'); + api.export('handleError', 'client'); // exports api.mainModule('server/lib/index.js', 'server'); diff --git a/packages/rocketchat-ui/client/lib/fireEvent.js b/packages/rocketchat-ui/client/lib/fireEvent.js index 0c0cc7b646f..aa3908c7052 100644 --- a/packages/rocketchat-ui/client/lib/fireEvent.js +++ b/packages/rocketchat-ui/client/lib/fireEvent.js @@ -1,6 +1,6 @@ import { Tracker } from 'meteor/tracker'; -window.fireGlobalEvent = function _fireGlobalEvent(eventName, params) { +fireGlobalEvent = function _fireGlobalEvent(eventName, params) { //eslint-disable-line window.dispatchEvent(new CustomEvent(eventName, { detail: params })); Tracker.autorun((computation) => { diff --git a/packages/rocketchat-ui/package.js b/packages/rocketchat-ui/package.js index aa3c4e272b6..3fe404b3cde 100644 --- a/packages/rocketchat-ui/package.js +++ b/packages/rocketchat-ui/package.js @@ -146,6 +146,7 @@ Package.onUse(function(api) { api.addFiles('client/components/contextualBar.js', 'client'); api.export('fileUpload'); - api.export('t'); - api.export('modal'); + api.export('t', 'client'); + api.export('modal', 'client'); + api.export('fireGlobalEvent', 'client'); });