From a2737befe114efdc2b286c0f8ca86911673b89ee Mon Sep 17 00:00:00 2001 From: Marcos Spessatto Defendi Date: Thu, 1 Nov 2018 16:29:40 -0300 Subject: [PATCH] Convert meteor-timesync to main module structure (#12495) * 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 --- client/methods/updateMessage.js | 1 + client/startup/startup.js | 1 + packages/meteor-timesync/client/index.js | 6 +++ .../meteor-timesync/client/timesync-client.js | 9 +++-- packages/meteor-timesync/package.js | 40 ++++++++++--------- packages/meteor-timesync/server/index.js | 1 + .../meteor-timesync/server/timesync-server.js | 2 +- .../client/methods/sendMessage.js | 1 + packages/rocketchat-lib/package.js | 1 + .../client/methods/sendMessageExternal.js | 1 + .../client/rocketchat.otr.room.js | 1 + 11 files changed, 41 insertions(+), 23 deletions(-) create mode 100644 packages/meteor-timesync/client/index.js create mode 100644 packages/meteor-timesync/server/index.js diff --git a/client/methods/updateMessage.js b/client/methods/updateMessage.js index 86e40640ce85..ddcdae14c49d 100644 --- a/client/methods/updateMessage.js +++ b/client/methods/updateMessage.js @@ -1,5 +1,6 @@ import { Meteor } from 'meteor/meteor'; import { Tracker } from 'meteor/tracker'; +import { TimeSync } from 'meteor/mizzao:timesync'; import _ from 'underscore'; import moment from 'moment'; import toastr from 'toastr'; diff --git a/client/startup/startup.js b/client/startup/startup.js index 9ee7fd2527ca..cf2c1eea246b 100644 --- a/client/startup/startup.js +++ b/client/startup/startup.js @@ -2,6 +2,7 @@ import { Meteor } from 'meteor/meteor'; import { Tracker } from 'meteor/tracker'; import { Session } from 'meteor/session'; +import { TimeSync } from 'meteor/mizzao:timesync'; import toastr from 'toastr'; import hljs from 'highlight.js'; import 'highlight.js/styles/github.css'; diff --git a/packages/meteor-timesync/client/index.js b/packages/meteor-timesync/client/index.js new file mode 100644 index 000000000000..b9a53fb0ddf6 --- /dev/null +++ b/packages/meteor-timesync/client/index.js @@ -0,0 +1,6 @@ +import { TimeSync, SyncInternals } from './timesync-client'; + +export { + TimeSync, + SyncInternals, +}; diff --git a/packages/meteor-timesync/client/timesync-client.js b/packages/meteor-timesync/client/timesync-client.js index ff7eb5845255..026e332c559b 100644 --- a/packages/meteor-timesync/client/timesync-client.js +++ b/packages/meteor-timesync/client/timesync-client.js @@ -1,8 +1,11 @@ -/* eslint-disable */ +import { Meteor } from 'meteor/meteor'; +import { Deps } from 'meteor/deps'; +import { HTTP } from 'meteor/http'; + //IE8 doesn't have Date.now() Date.now = Date.now || function() { return +new Date; }; -TimeSync = { +export const TimeSync = { loggingEnabled: true }; @@ -15,7 +18,7 @@ function log(/* arguments */) { var defaultInterval = 1000; // Internal values, exported for testing -SyncInternals = { +export const SyncInternals = { offset: undefined, roundTripTime: undefined, offsetDep: new Deps.Dependency(), diff --git a/packages/meteor-timesync/package.js b/packages/meteor-timesync/package.js index 446d4e6e5ba4..175327300c9c 100644 --- a/packages/meteor-timesync/package.js +++ b/packages/meteor-timesync/package.js @@ -6,31 +6,33 @@ Package.describe({ }); Package.onUse(function (api) { - api.use([ - 'check', - 'tracker', - 'http' - ], 'client'); - - api.use('webapp', 'server'); + api.use([ + 'check', + 'tracker', + 'http', + ], 'client'); - // Our files - api.addFiles('server/timesync-server.js', 'server'); - api.addFiles('client/timesync-client.js', 'client'); + api.use([ + 'webapp', + ], 'server'); - api.export('TimeSync', 'client'); - api.export('SyncInternals', 'client', {testOnly: true} ); + api.use([ + 'ecmascript', + ]); + api.mainModule('client/index.js', 'client'); + api.mainModule('server/index.js', 'server'); }); Package.onTest(function (api) { - api.use([ - 'tinytest', - 'test-helpers' - ]); + api.use([ + 'ecmascript', + 'tinytest', + 'test-helpers' + ]); - api.use(['tracker'], 'client'); + api.use(['tracker'], 'client'); - api.use('mizzao:timesync'); + api.use('mizzao:timesync'); - api.addFiles('tests/client.js', 'client'); + api.addFiles('tests/client.js', 'client'); }); diff --git a/packages/meteor-timesync/server/index.js b/packages/meteor-timesync/server/index.js new file mode 100644 index 000000000000..ab8e57008da6 --- /dev/null +++ b/packages/meteor-timesync/server/index.js @@ -0,0 +1 @@ +import './timesync-server'; \ No newline at end of file diff --git a/packages/meteor-timesync/server/timesync-server.js b/packages/meteor-timesync/server/timesync-server.js index 70d11c7d7e90..d8d694618fa9 100644 --- a/packages/meteor-timesync/server/timesync-server.js +++ b/packages/meteor-timesync/server/timesync-server.js @@ -1,4 +1,4 @@ -/* eslint-disable */ +import { WebApp } from 'meteor/webapp'; // Use rawConnectHandlers so we get a response as quickly as possible // https://github.com/meteor/meteor/blob/devel/packages/webapp/webapp_server.js diff --git a/packages/rocketchat-lib/client/methods/sendMessage.js b/packages/rocketchat-lib/client/methods/sendMessage.js index a6147fbc54a7..de8a3814411a 100644 --- a/packages/rocketchat-lib/client/methods/sendMessage.js +++ b/packages/rocketchat-lib/client/methods/sendMessage.js @@ -1,4 +1,5 @@ import { Meteor } from 'meteor/meteor'; +import { TimeSync } from 'meteor/mizzao:timesync'; import s from 'underscore.string'; Meteor.methods({ diff --git a/packages/rocketchat-lib/package.js b/packages/rocketchat-lib/package.js index a1d90238e416..86d5176eb922 100644 --- a/packages/rocketchat-lib/package.js +++ b/packages/rocketchat-lib/package.js @@ -29,6 +29,7 @@ Package.onUse(function(api) { api.use('rocketchat:version'); api.use('rocketchat:logger'); api.use('rocketchat:mailer'); + api.use('mizzao:timesync'); api.use('rocketchat:custom-oauth'); api.use('rocketchat:authorization', { unordered: true }); api.use('rocketchat:push-notifications', { unordered: true }); diff --git a/packages/rocketchat-livechat/.app/client/methods/sendMessageExternal.js b/packages/rocketchat-livechat/.app/client/methods/sendMessageExternal.js index 93fed539c92f..29723d521ee2 100644 --- a/packages/rocketchat-livechat/.app/client/methods/sendMessageExternal.js +++ b/packages/rocketchat-livechat/.app/client/methods/sendMessageExternal.js @@ -1,4 +1,5 @@ import { Meteor } from 'meteor/meteor'; +import { TimeSync } from 'meteor/mizzao:timesync'; import visitor from '../../imports/client/visitor'; import s from 'underscore.string'; diff --git a/packages/rocketchat-otr/client/rocketchat.otr.room.js b/packages/rocketchat-otr/client/rocketchat.otr.room.js index 59047f74646f..85a36a4bd90a 100644 --- a/packages/rocketchat-otr/client/rocketchat.otr.room.js +++ b/packages/rocketchat-otr/client/rocketchat.otr.room.js @@ -5,6 +5,7 @@ import { EJSON } from 'meteor/ejson'; import { Tracker } from 'meteor/tracker'; import { FlowRouter } from 'meteor/kadira:flow-router'; import { TAPi18n } from 'meteor/tap:i18n'; +import { TimeSync } from 'meteor/mizzao:timesync'; import _ from 'underscore'; import toastr from 'toastr'; /* globals crypto */