From 69bf5c87a977e743206e911134572824492c65eb Mon Sep 17 00:00:00 2001 From: Robert Jackson Date: Thu, 31 Oct 2019 13:00:36 -0400 Subject: [PATCH] Remove najax from default set of sandbox globals. * Recent versions of ember-data (3.12+) will automatically use `ember-fetch` (or global `fetch`) if present, and does not need special logic around `najax` * New applications (as of ember-cli@3.13.0) include `ember-fetch` by default, and do **not** include jQuery by default. Considering that `najax` is a `jQuery.ajax` emulation API, I think this library should avoid exposing it. * `najax` (as a dependency of this library) is difficult for the host application to control (e.g. get their own version), and would be better if they provided it themselves (via `buildSandboxGlobals` API) * Providing backwards compatibility is **very** easy (add `najax: require('najax')` via `buildSandboxGlobals`) * It seems better to "follow a spec" (suggesting `fetch` usage) For applications that still need `najax` (for example, if they are using an older ember-data version), they can do (example uses new `buildSandboxGlobals` API): ```js const najax = require('najax'); let fastboot = new FastBoot({ distPath: 'some/path/to/dist', buildSandboxGlobals(globals) { return Object.assign({}, globals, { najax, }); } }); ``` --- package.json | 1 - src/ember-app.js | 2 -- test/fastboot-test.js | 4 ---- .../custom-sandbox/assets/fastboot-trial.js | 1 - yarn.lock | 24 ------------------- 5 files changed, 32 deletions(-) diff --git a/package.json b/package.json index 2e36a11..ebea7a3 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,6 @@ "chalk": "^2.4.2", "cookie": "^0.4.0", "debug": "^4.1.1", - "najax": "^1.0.4", "resolve": "^1.12.0", "simple-dom": "^1.4.0", "source-map-support": "^0.5.13" diff --git a/src/ember-app.js b/src/ember-app.js index 2e578c2..54cacbe 100644 --- a/src/ember-app.js +++ b/src/ember-app.js @@ -5,7 +5,6 @@ const vm = require('vm'); const path = require('path'); const chalk = require('chalk'); -const najax = require('najax'); const SimpleDOM = require('simple-dom'); const resolve = require('resolve'); const debug = require('debug')('fastboot:ember-app'); @@ -95,7 +94,6 @@ class EmberApp { // add any additional user provided variables or override the default globals in the sandbox let globals = Object.assign( { - najax, FastBoot: { require: sandboxRequire, config: fastbootConfig, diff --git a/test/fastboot-test.js b/test/fastboot-test.js index 41dcdcd..5f8cf06 100644 --- a/test/fastboot-test.js +++ b/test/fastboot-test.js @@ -174,7 +174,6 @@ describe('FastBoot', function() { distPath: fixture('custom-sandbox'), sandboxGlobals: { foo: 5, - najax: 'undefined', myVar: 'undefined', }, }); @@ -184,7 +183,6 @@ describe('FastBoot', function() { .then(r => r.html()) .then(html => { expect(html).to.match(/foo from sandbox: 5/); - expect(html).to.match(/najax in sandbox: undefined/); }); }); @@ -261,7 +259,6 @@ describe('FastBoot', function() { distPath: fixture('basic-app'), sandboxGlobals: { foo: 5, - najax: 'undefined', myVar: 'undefined', }, }); @@ -275,7 +272,6 @@ describe('FastBoot', function() { .then(r => r.html()) .then(html => { expect(html).to.match(/foo from sandbox: 5/); - expect(html).to.match(/najax in sandbox: undefined/); }); function hotReloadApp() { diff --git a/test/fixtures/custom-sandbox/assets/fastboot-trial.js b/test/fixtures/custom-sandbox/assets/fastboot-trial.js index dfa6f77..0ac945d 100644 --- a/test/fixtures/custom-sandbox/assets/fastboot-trial.js +++ b/test/fixtures/custom-sandbox/assets/fastboot-trial.js @@ -341,7 +341,6 @@ define('fastboot-trial/routes/foo', ['exports', 'ember'], function (exports, _em if (this.get('fastboot.isFastBoot')) { return { foo: foo, - najax: najax, myVar: myVar }; } diff --git a/yarn.lock b/yarn.lock index 7b27575..5200d63 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1971,11 +1971,6 @@ isobject@^4.0.0: resolved "https://registry.yarnpkg.com/isobject/-/isobject-4.0.0.tgz#3f1c9155e73b192022a80819bacd0343711697b0" integrity sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA== -jquery-deferred@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/jquery-deferred/-/jquery-deferred-0.3.1.tgz#596eca1caaff54f61b110962b23cafea74c35355" - integrity sha1-WW7KHKr/VPYbEQlisjyv6nTDU1U= - js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -2095,11 +2090,6 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" -lodash.defaultsdeep@^4.6.0: - version "4.6.1" - resolved "https://registry.yarnpkg.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz#512e9bd721d272d94e3d3a63653fa17516741ca6" - integrity sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA== - lodash.find@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.find/-/lodash.find-4.6.0.tgz#cb0704d47ab71789ffa0de8b97dd926fb88b13b1" @@ -2391,15 +2381,6 @@ mz@^2.4.0: object-assign "^4.0.1" thenify-all "^1.0.0" -najax@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/najax/-/najax-1.0.4.tgz#63fd8dbf15d18f24dc895b3a16fec66c136b8084" - integrity sha512-wsSacA+RkgY1wxRxXCT3tdqzmamEv9PLeoV/ub9SlLf2RngbPMSqc3A7H35XJDfURC0twMmZsnPdsYPkuuFSVg== - dependencies: - jquery-deferred "^0.3.0" - lodash.defaultsdeep "^4.6.0" - qs "^6.2.0" - natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -2878,11 +2859,6 @@ qs@6.7.0: resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== -qs@^6.2.0: - version "6.9.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.0.tgz#d1297e2a049c53119cb49cca366adbbacc80b409" - integrity sha512-27RP4UotQORTpmNQDX8BHPukOnBP3p1uUJY5UnDhaJB+rMt9iMsok724XL+UHU23bEFOHRMQ2ZhI99qOWUMGFA== - ramda@^0.26.1: version "0.26.1" resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.26.1.tgz#8d41351eb8111c55353617fc3bbffad8e4d35d06"