From 0ef65cc782637cc1e749a500e82cf15bcfe35d85 Mon Sep 17 00:00:00 2001 From: Sashko Stubailo Date: Thu, 30 Jul 2015 17:25:38 -0700 Subject: [PATCH] Clean up all dependencies --- packages/accounts-base/package.js | 15 +++++--- packages/binary-heap/package.js | 8 +++- packages/blaze/package.js | 2 + packages/browser-policy/package.js | 2 +- packages/constraint-solver/package.js | 9 ++++- packages/ddp-client/package.js | 11 +++++- packages/diff-sequence/package.js | 9 +++-- packages/geojson-utils/package.js | 1 + packages/logic-solver/package.js | 2 +- packages/oauth1/package.js | 8 +++- packages/observe-sequence/package.js | 13 +++++-- packages/package-version-parser/package.js | 2 +- packages/reactive-dict/package.js | 1 + packages/reactive-dict/reactive-dict.js | 19 +++++----- packages/reload-safetybelt/package.js | 2 +- packages/spacebars-compiler/package.js | 14 ++++--- packages/spacebars-tests/package.js | 26 +++++++------ packages/spacebars/dynamic.html | 22 ----------- packages/spacebars/dynamic.js | 43 +++++++++++++++++++++- packages/spacebars/package.js | 5 +-- packages/spiderable/package.js | 4 +- packages/templating/package.js | 2 +- packages/test-helpers/package.js | 2 +- packages/webapp/package.js | 2 +- 24 files changed, 145 insertions(+), 79 deletions(-) delete mode 100644 packages/spacebars/dynamic.html diff --git a/packages/accounts-base/package.js b/packages/accounts-base/package.js index 1f2b982948..4a0157ba51 100644 --- a/packages/accounts-base/package.js +++ b/packages/accounts-base/package.js @@ -62,11 +62,16 @@ Package.onUse(function (api) { }); Package.onTest(function (api) { - api.use('accounts-base'); - api.use('tinytest'); - api.use('random'); - api.use('test-helpers'); - api.use('oauth-encryption'); + api.use([ + 'accounts-base', + 'tinytest', + 'random', + 'test-helpers', + 'oauth-encryption', + 'underscore', + 'ddp' + ]); + api.addFiles('accounts_tests.js', 'server'); api.addFiles("accounts_url_tests.js", "client"); }); diff --git a/packages/binary-heap/package.js b/packages/binary-heap/package.js index 5465c66cb7..03534af583 100644 --- a/packages/binary-heap/package.js +++ b/packages/binary-heap/package.js @@ -12,7 +12,11 @@ Package.onUse(function (api) { }); Package.onTest(function (api) { - api.use('tinytest'); - api.use('binary-heap'); + api.use([ + 'tinytest', + 'underscore', + 'binary-heap' + ]); + api.addFiles('binary-heap-tests.js'); }); diff --git a/packages/blaze/package.js b/packages/blaze/package.js index 95a0077602..f4e05e0471 100644 --- a/packages/blaze/package.js +++ b/packages/blaze/package.js @@ -47,6 +47,8 @@ Package.onTest(function (api) { api.use('blaze-tools'); // for BlazeTools.toJS api.use('html-tools'); api.use('reactive-var'); + api.use('tracker'); + api.use('templating'); api.addFiles('view_tests.js'); api.addFiles('render_tests.js', 'client'); diff --git a/packages/browser-policy/package.js b/packages/browser-policy/package.js index c4763e4437..71102f0aca 100644 --- a/packages/browser-policy/package.js +++ b/packages/browser-policy/package.js @@ -9,6 +9,6 @@ Package.onUse(function (api) { }); Package.onTest(function (api) { - api.use(["tinytest", "browser-policy", "ejson"], "server"); + api.use(["tinytest", "browser-policy", "ejson", "underscore"], "server"); api.addFiles("browser-policy-test.js", "server"); }); diff --git a/packages/constraint-solver/package.js b/packages/constraint-solver/package.js index fcb2c38fd8..8c6c7edd5e 100644 --- a/packages/constraint-solver/package.js +++ b/packages/constraint-solver/package.js @@ -23,8 +23,13 @@ Package.onUse(function (api) { Package.onTest(function (api) { api.use('constraint-solver'); - api.use(['tinytest', 'minimongo', 'package-version-parser']); - api.use('underscore'); + api.use([ + 'tinytest', + 'minimongo', + 'package-version-parser', + 'underscore', + 'check' + ]); // Only test the package on the server. Mainly because of // package-version-parser, which uses the semver npm module, diff --git a/packages/ddp-client/package.js b/packages/ddp-client/package.js index 5bc4d219c9..28b6492962 100644 --- a/packages/ddp-client/package.js +++ b/packages/ddp-client/package.js @@ -47,7 +47,16 @@ Package.onTest(function (api) { api.use('livedata', ['client', 'server']); api.use('mongo', ['client', 'server']); api.use('test-helpers', ['client', 'server']); - api.use(['underscore', 'tinytest', 'random', 'tracker', 'reactive-var', 'mongo-id', 'diff-sequence']); + api.use([ + 'underscore', + 'tinytest', + 'random', + 'tracker', + 'reactive-var', + 'mongo-id', + 'diff-sequence', + 'ejson' + ]); api.addFiles('stub_stream.js'); api.addFiles('livedata_connection_tests.js', ['client', 'server']); diff --git a/packages/diff-sequence/package.js b/packages/diff-sequence/package.js index 0f4b704b7e..8b45e84c3c 100644 --- a/packages/diff-sequence/package.js +++ b/packages/diff-sequence/package.js @@ -13,11 +13,14 @@ Package.onUse(function (api) { }); Package.onTest(function (api) { - api.use('tinytest'); + api.use([ + 'tinytest', + 'underscore', + 'ejson' + ]); + api.use('diff-sequence'); api.addFiles([ 'tests.js' ]); }); - - diff --git a/packages/geojson-utils/package.js b/packages/geojson-utils/package.js index 72265ad9b3..b7566c184c 100644 --- a/packages/geojson-utils/package.js +++ b/packages/geojson-utils/package.js @@ -10,6 +10,7 @@ Package.onUse(function (api) { Package.onTest(function (api) { api.use('tinytest'); + api.use('underscore'); api.use('geojson-utils'); api.addFiles(['geojson-utils.tests.js'], 'client'); }); diff --git a/packages/logic-solver/package.js b/packages/logic-solver/package.js index 85a90e8aeb..2110d8d550 100644 --- a/packages/logic-solver/package.js +++ b/packages/logic-solver/package.js @@ -14,7 +14,7 @@ Package.on_use(function (api) { }); Package.on_test(function (api) { - api.use('tinytest'); + api.use(['tinytest', 'check', 'underscore']); api.use('logic-solver'); // logic-solver is totally meant for the client too, but not old diff --git a/packages/oauth1/package.js b/packages/oauth1/package.js index 82d17a0da8..2a8d5a033e 100644 --- a/packages/oauth1/package.js +++ b/packages/oauth1/package.js @@ -7,8 +7,12 @@ Package.onUse(function (api) { api.use('random'); api.use('service-configuration', ['client', 'server']); api.use('oauth', ['client', 'server']); - api.use('underscore', 'server'); - api.use('http', 'server'); + api.use([ + 'underscore', + 'check', + 'http' + ], 'server'); + api.use('mongo'); api.export('OAuth1Binding', 'server'); diff --git a/packages/observe-sequence/package.js b/packages/observe-sequence/package.js index 1f954187a5..8d2d1a85f3 100644 --- a/packages/observe-sequence/package.js +++ b/packages/observe-sequence/package.js @@ -14,9 +14,14 @@ Package.onUse(function (api) { }); Package.onTest(function (api) { - api.use('tinytest'); - api.use('observe-sequence'); - api.use('underscore'); - api.use('ejson'); + api.use([ + 'tinytest', + 'observe-sequence', + 'underscore', + 'ejson', + 'tracker', + 'mongo' + ]); + api.addFiles(['observe_sequence_tests.js'], 'client'); }); diff --git a/packages/package-version-parser/package.js b/packages/package-version-parser/package.js index e10d9fb895..5c3a54aa92 100644 --- a/packages/package-version-parser/package.js +++ b/packages/package-version-parser/package.js @@ -12,6 +12,6 @@ Package.onUse(function (api) { Package.onTest(function (api) { api.use('package-version-parser'); - api.use(['tinytest']); + api.use(['tinytest', 'underscore']); api.addFiles('package-version-parser-tests.js', 'server'); }); diff --git a/packages/reactive-dict/package.js b/packages/reactive-dict/package.js index c12466bff0..e60d725570 100644 --- a/packages/reactive-dict/package.js +++ b/packages/reactive-dict/package.js @@ -15,5 +15,6 @@ Package.onUse(function (api) { Package.onTest(function (api) { api.use('tinytest'); api.use('reactive-dict'); + api.use('tracker'); api.addFiles('reactive-dict-tests.js'); }); diff --git a/packages/reactive-dict/reactive-dict.js b/packages/reactive-dict/reactive-dict.js index 31e0febccb..1a194ea9d1 100644 --- a/packages/reactive-dict/reactive-dict.js +++ b/packages/reactive-dict/reactive-dict.js @@ -95,8 +95,8 @@ _.extend(ReactiveDict.prototype, { // Mongo.ObjectID is in the 'mongo' package var ObjectID = null; - if (typeof Mongo !== 'undefined') { - ObjectID = Mongo.ObjectID; + if (Package.mongo) { + ObjectID = Package.mongo.Mongo.ObjectID; } // We don't allow objects (or arrays that might include objects) for @@ -114,8 +114,9 @@ _.extend(ReactiveDict.prototype, { typeof value !== 'undefined' && !(value instanceof Date) && !(ObjectID && value instanceof ObjectID) && - value !== null) + value !== null) { throw new Error("ReactiveDict.equals: value must be scalar"); + } var serializedValue = stringify(value); if (Tracker.active) { @@ -139,7 +140,7 @@ _.extend(ReactiveDict.prototype, { if (_.has(self.keys, key)) oldValue = parse(self.keys[key]); return EJSON.equals(oldValue, value); }, - + all: function() { this.allDeps.depend(); var ret = {}; @@ -148,21 +149,21 @@ _.extend(ReactiveDict.prototype, { }); return ret; }, - + clear: function() { var self = this; - + var oldKeys = self.keys; self.keys = {}; - + self.allDeps.changed(); - + _.each(oldKeys, function(value, key) { changed(self.keyDeps[key]); changed(self.keyValueDeps[key][value]); changed(self.keyValueDeps[key]['undefined']); }); - + }, _setObject: function (object) { diff --git a/packages/reload-safetybelt/package.js b/packages/reload-safetybelt/package.js index e6766866e0..765da1600d 100644 --- a/packages/reload-safetybelt/package.js +++ b/packages/reload-safetybelt/package.js @@ -11,6 +11,6 @@ Package.onUse(function (api) { Package.onTest(function (api) { api.addFiles("safetybelt.js", "server", { isAsset: true }); - api.use(["reload-safetybelt", "tinytest", "http", "webapp"]); + api.use(["reload-safetybelt", "tinytest", "http", "webapp", "underscore"]); api.addFiles("reload-safety-belt-tests.js", "server"); }); diff --git a/packages/spacebars-compiler/package.js b/packages/spacebars-compiler/package.js index f4205c4d96..5cd1b0a007 100644 --- a/packages/spacebars-compiler/package.js +++ b/packages/spacebars-compiler/package.js @@ -23,11 +23,15 @@ Package.onUse(function (api) { }); Package.onTest(function (api) { - api.use('underscore'); - api.use('spacebars-compiler'); - api.use('tinytest'); - api.use('blaze-tools'); - api.use('coffeescript'); + api.use([ + 'underscore', + 'spacebars-compiler', + 'tinytest', + 'blaze-tools', + 'coffeescript', + 'spacebars', + 'blaze' + ]); api.addFiles('spacebars_tests.js'); api.addFiles('compile_tests.js'); api.addFiles('compiler_output_tests.coffee'); diff --git a/packages/spacebars-tests/package.js b/packages/spacebars-tests/package.js index 9e56f4adf6..ecd9bcaa2e 100644 --- a/packages/spacebars-tests/package.js +++ b/packages/spacebars-tests/package.js @@ -6,17 +6,21 @@ Package.describe({ // These tests are in a separate package to avoid a circular dependency // between the `spacebars` and `templating` packages. Package.onTest(function (api) { - api.use('underscore'); - api.use('spacebars'); - api.use('tinytest'); - api.use('jquery'); - api.use('test-helpers'); - api.use('reactive-var'); - api.use('showdown'); - api.use('minimongo'); - api.use('tracker'); - api.use('mongo'); - api.use('random'); + api.use([ + 'underscore', + 'spacebars', + 'tinytest', + 'jquery', + 'test-helpers', + 'reactive-var', + 'showdown', + 'minimongo', + 'tracker', + 'mongo', + 'random', + 'blaze', + 'session' + ]); api.use('templating', 'client'); api.addFiles([ diff --git a/packages/spacebars/dynamic.html b/packages/spacebars/dynamic.html deleted file mode 100644 index 054e208f6a..0000000000 --- a/packages/spacebars/dynamic.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - diff --git a/packages/spacebars/dynamic.js b/packages/spacebars/dynamic.js index 609d5d3ff5..4dca55d5ba 100644 --- a/packages/spacebars/dynamic.js +++ b/packages/spacebars/dynamic.js @@ -1,3 +1,5 @@ +var Template = Blaze.Template; + /** * @isTemplate true * @memberOf Template @@ -5,9 +7,48 @@ * @summary Choose a template to include dynamically, by name. * @locus Templates * @param {String} template The name of the template to include. - * @param {Object} [data] Optional. The data context in which to include the template. + * @param {Object} [data] Optional. The data context in which to include the + * template. */ +// The compiled version is here to avoid having Spacebars depend on Templating. +// If we split out the build plugin part of templating from the runtime, it +// might be possible to use templating here instead. +Template.__checkName("__dynamic"); +Template["__dynamic"] = new Template("Template.__dynamic", (function() { + var view = this; + return [ Blaze.View("lookup:checkContext", function() { + return Spacebars.mustache(view.lookup("checkContext")); + }), "\n ", Blaze.If(function() { + return Spacebars.call(view.lookup("dataContextPresent")); + }, function() { + return [ "\n ", Spacebars.include(view.lookupTemplate("__dynamicWithDataContext")), "\n " ]; + }, function() { + return [ "\n \n ", Blaze._TemplateWith(function() { + return { + template: Spacebars.call(view.lookup("template")), + data: Spacebars.call(view.lookup("..")) + }; + }, function() { + return Spacebars.include(view.lookupTemplate("__dynamicWithDataContext")); + }), "\n " ]; + }) ]; +})); + +Template.__checkName("__dynamicWithDataContext"); +Template["__dynamicWithDataContext"] = new Template("Template.__dynamicWithDataContext", (function() { + var view = this; + return Spacebars.With(function() { + return Spacebars.dataMustache(view.lookup("chooseTemplate"), view.lookup("template")); + }, function() { + return [ "\n ", Blaze._TemplateWith(function() { + return Spacebars.call(Spacebars.dot(view.lookup(".."), "data")); + }, function() { + return Spacebars.include(view.lookupTemplate("..")); + }), " \n " ]; + }); +})); + Template.__dynamicWithDataContext.helpers({ chooseTemplate: function (name) { return Blaze._getTemplate(name, function () { diff --git a/packages/spacebars/package.js b/packages/spacebars/package.js index 4dcd4376d5..e2ec6f79b2 100644 --- a/packages/spacebars/package.js +++ b/packages/spacebars/package.js @@ -18,14 +18,13 @@ Package.onUse(function (api) { api.use('tracker'); api.use('blaze'); api.use('observe-sequence'); - api.use('templating'); api.use('underscore'); api.addFiles(['spacebars-runtime.js']); - api.addFiles(['dynamic.html', 'dynamic.js'], 'client'); + api.addFiles(['dynamic.js'], 'client'); }); Package.onTest(function (api) { - api.use(["spacebars", "tinytest", "test-helpers", "reactive-var"]); + api.use(["spacebars", "tinytest", "test-helpers", "reactive-var", "tracker"]); api.use("templating", "client"); api.addFiles(["dynamic_tests.html", "dynamic_tests.js"], "client"); }); diff --git a/packages/spiderable/package.js b/packages/spiderable/package.js index df86193c3d..9939dd4556 100644 --- a/packages/spiderable/package.js +++ b/packages/spiderable/package.js @@ -5,7 +5,7 @@ Package.describe({ Package.onUse(function (api) { api.use('webapp', 'server'); - api.use(['ddp'], 'client'); + api.use(['ddp', 'tracker'], 'client'); api.use(['callback-hook'], 'client'); api.use(['templating'], 'client'); api.use(['underscore'], ['client', 'server']); @@ -21,7 +21,7 @@ Package.onUse(function (api) { }); Package.onTest(function (api) { - api.use(['spiderable', 'tinytest']); + api.use(['spiderable', 'tinytest', 'underscore', 'ddp']); api.addFiles('spiderable_client_tests.js', 'client'); api.addFiles('spiderable_server_tests.js', 'server'); }); diff --git a/packages/templating/package.js b/packages/templating/package.js index d24fe95dba..3c928a7037 100644 --- a/packages/templating/package.js +++ b/packages/templating/package.js @@ -44,7 +44,7 @@ Package.onUse(function (api) { // Blaze, so anybody using templating (eg apps) need to implicitly use // 'meteor' and 'blaze'. api.use('blaze'); - api.imply(['meteor', 'blaze'], 'client'); + api.imply(['meteor', 'blaze', 'spacebars'], 'client'); }); Package.onTest(function (api) { diff --git a/packages/test-helpers/package.js b/packages/test-helpers/package.js index d1f761f609..534d14fa37 100644 --- a/packages/test-helpers/package.js +++ b/packages/test-helpers/package.js @@ -4,7 +4,7 @@ Package.describe({ }); Package.onUse(function (api) { - api.use(['underscore', 'tracker', 'ejson', 'tinytest', 'random']); + api.use(['underscore', 'tracker', 'ejson', 'tinytest', 'random', 'blaze']); api.use(['jquery'], 'client'); // XXX for connection.js. Not sure this really belongs in diff --git a/packages/webapp/package.js b/packages/webapp/package.js index dc5defd770..70c33d437e 100644 --- a/packages/webapp/package.js +++ b/packages/webapp/package.js @@ -37,7 +37,7 @@ Package.onUse(function (api) { }); Package.onTest(function (api) { - api.use(['tinytest', 'webapp', 'http']); + api.use(['tinytest', 'webapp', 'http', 'underscore']); api.addFiles('webapp_tests.js', 'server'); api.addFiles('webapp_client_tests.js', 'client'); });