From bfcbceeb2a4d90460c10cddf877485f35673ced1 Mon Sep 17 00:00:00 2001 From: Marcos Spessatto Defendi Date: Thu, 1 Nov 2018 17:52:47 -0300 Subject: [PATCH] Convert rocketchat-analytics to main module structure (#12506) * 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 * make ChatRoom exportable by package * Convert rocketchat-analytics to main module structure * disable eslint no-undef in fireGlobalEvent --- packages/rocketchat-analytics/client/index.js | 2 ++ .../rocketchat-analytics/client/loadScript.js | 1 + .../rocketchat-analytics/client/trackEvents.js | 2 ++ packages/rocketchat-analytics/package.js | 15 +++++++++++---- packages/rocketchat-analytics/server/index.js | 1 + packages/rocketchat-analytics/server/settings.js | 2 ++ packages/rocketchat-ui/client/lib/collections.js | 4 ++-- packages/rocketchat-ui/package.js | 1 + 8 files changed, 22 insertions(+), 6 deletions(-) create mode 100644 packages/rocketchat-analytics/client/index.js create mode 100644 packages/rocketchat-analytics/server/index.js diff --git a/packages/rocketchat-analytics/client/index.js b/packages/rocketchat-analytics/client/index.js new file mode 100644 index 0000000000000..ec016dc3b595d --- /dev/null +++ b/packages/rocketchat-analytics/client/index.js @@ -0,0 +1,2 @@ +import './loadScript'; +import './trackEvents'; diff --git a/packages/rocketchat-analytics/client/loadScript.js b/packages/rocketchat-analytics/client/loadScript.js index 214666bbb4bd5..19c7f95b84139 100644 --- a/packages/rocketchat-analytics/client/loadScript.js +++ b/packages/rocketchat-analytics/client/loadScript.js @@ -1,6 +1,7 @@ import { Meteor } from 'meteor/meteor'; import { Tracker } from 'meteor/tracker'; import { Template } from 'meteor/templating'; +import { RocketChat } from 'meteor/rocketchat:lib'; Template.body.onRendered(() => { Tracker.autorun((c) => { diff --git a/packages/rocketchat-analytics/client/trackEvents.js b/packages/rocketchat-analytics/client/trackEvents.js index a1a704b9dc94b..dedeb8b1dd9c2 100644 --- a/packages/rocketchat-analytics/client/trackEvents.js +++ b/packages/rocketchat-analytics/client/trackEvents.js @@ -1,5 +1,7 @@ import { Meteor } from 'meteor/meteor'; import { FlowRouter } from 'meteor/kadira:flow-router'; +import { RocketChat } from 'meteor/rocketchat:lib'; +import { ChatRoom } from 'meteor/rocketchat:ui'; import { Tracker } from 'meteor/tracker'; function trackEvent(category, action, label) { diff --git a/packages/rocketchat-analytics/package.js b/packages/rocketchat-analytics/package.js index c4bf4722afae7..3c5f1e62a65e7 100644 --- a/packages/rocketchat-analytics/package.js +++ b/packages/rocketchat-analytics/package.js @@ -8,9 +8,16 @@ Package.describe({ // Note: Piwik respects Google Chrome's No Track: http://piwik.org/docs/privacy/#step-4-respect-donottrack-preference Package.onUse(function(api) { - api.use(['ecmascript', 'rocketchat:lib', 'tracker']); - api.use(['templating', 'kadira:flow-router'], 'client'); + api.use([ + 'ecmascript', + 'rocketchat:lib', + 'tracker', + ]); + api.use([ + 'templating', + 'kadira:flow-router', + ], 'client'); - api.addFiles(['client/loadScript.js', 'client/trackEvents.js'], 'client'); - api.addFiles(['server/settings.js'], 'server'); + api.mainModule('client/index.js', 'client'); + api.mainModule('server/index.js', 'server'); }); diff --git a/packages/rocketchat-analytics/server/index.js b/packages/rocketchat-analytics/server/index.js new file mode 100644 index 0000000000000..97097791afdc4 --- /dev/null +++ b/packages/rocketchat-analytics/server/index.js @@ -0,0 +1 @@ +import './settings'; diff --git a/packages/rocketchat-analytics/server/settings.js b/packages/rocketchat-analytics/server/settings.js index 009e4f77b48af..d37d2a5614977 100644 --- a/packages/rocketchat-analytics/server/settings.js +++ b/packages/rocketchat-analytics/server/settings.js @@ -1,3 +1,5 @@ +import { RocketChat } from 'meteor/rocketchat:lib'; + RocketChat.settings.addGroup('Analytics', function addSettings() { this.section('Piwik', function() { const enableQuery = { _id: 'PiwikAnalytics_enabled', value: true }; diff --git a/packages/rocketchat-ui/client/lib/collections.js b/packages/rocketchat-ui/client/lib/collections.js index d350d3e7cd99e..bb09af5b42b98 100644 --- a/packages/rocketchat-ui/client/lib/collections.js +++ b/packages/rocketchat-ui/client/lib/collections.js @@ -5,7 +5,7 @@ import _ from 'underscore'; this.ChatMessage = new Mongo.Collection(null); this.CachedChatRoom = new RocketChat.CachedCollection({ name: 'rooms' }); -this.ChatRoom = this.CachedChatRoom.collection; +ChatRoom = this.CachedChatRoom.collection; this.CachedChatSubscription = new RocketChat.CachedCollection({ name: 'subscriptions' }); this.ChatSubscription = this.CachedChatSubscription.collection; @@ -17,7 +17,7 @@ this.CachedUserList = new Mongo.Collection(null); RocketChat.models.Users = _.extend({}, RocketChat.models.Users, Meteor.users); RocketChat.models.Subscriptions = _.extend({}, RocketChat.models.Subscriptions, this.ChatSubscription); -RocketChat.models.Rooms = _.extend({}, RocketChat.models.Rooms, this.ChatRoom); +RocketChat.models.Rooms = _.extend({}, RocketChat.models.Rooms, ChatRoom); RocketChat.models.Messages = _.extend({}, RocketChat.models.Messages, this.ChatMessage); Meteor.startup(() => { diff --git a/packages/rocketchat-ui/package.js b/packages/rocketchat-ui/package.js index 3fe404b3cde6f..6a9864653e3fb 100644 --- a/packages/rocketchat-ui/package.js +++ b/packages/rocketchat-ui/package.js @@ -149,4 +149,5 @@ Package.onUse(function(api) { api.export('t', 'client'); api.export('modal', 'client'); api.export('fireGlobalEvent', 'client'); + api.export('ChatRoom', 'client'); });