Skip to content

Commit

Permalink
Remove najax from default set of sandbox globals.
Browse files Browse the repository at this point in the history
* 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 [email protected]) 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,
    });
  }
});
```
  • Loading branch information
rwjblue committed Oct 31, 2019
1 parent 85a3666 commit f0b4eb9
Show file tree
Hide file tree
Showing 5 changed files with 0 additions and 32 deletions.
1 change: 0 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
2 changes: 0 additions & 2 deletions src/ember-app.js
Original file line number Diff line number Diff line change
Expand Up @@ -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');
Expand Down Expand Up @@ -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,
Expand Down
4 changes: 0 additions & 4 deletions test/fastboot-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,6 @@ describe('FastBoot', function() {
distPath: fixture('custom-sandbox'),
sandboxGlobals: {
foo: 5,
najax: 'undefined',
myVar: 'undefined',
},
});
Expand All @@ -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/);
});
});

Expand Down Expand Up @@ -261,7 +259,6 @@ describe('FastBoot', function() {
distPath: fixture('basic-app'),
sandboxGlobals: {
foo: 5,
najax: 'undefined',
myVar: 'undefined',
},
});
Expand All @@ -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() {
Expand Down
1 change: 0 additions & 1 deletion test/fixtures/custom-sandbox/assets/fastboot-trial.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 0 additions & 24 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -3119,11 +3119,6 @@ [email protected]:
editions "^1.1.1"
textextensions "1 || 2"

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=

jquery@^3.3.1:
version "3.4.1"
resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.4.1.tgz#714f1f8d9dde4bdfa55764ba37ef214630d80ef2"
Expand Down Expand Up @@ -3287,11 +3282,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"
Expand Down Expand Up @@ -3610,15 +3600,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"
Expand Down Expand Up @@ -4145,11 +4126,6 @@ [email protected]:
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==

quick-temp@^0.1.3, quick-temp@^0.1.5:
version "0.1.8"
resolved "https://registry.yarnpkg.com/quick-temp/-/quick-temp-0.1.8.tgz#bab02a242ab8fb0dd758a3c9776b32f9a5d94408"
Expand Down

0 comments on commit f0b4eb9

Please sign in to comment.