Skip to content

Commit d1dba12

Browse files
author
Robert Jackson
authored
Merge pull request #620 from ember-cli/fix-ember-global
2 parents e4e6fb6 + ba942c7 commit d1dba12

File tree

5 files changed

+52
-5
lines changed

5 files changed

+52
-5
lines changed

.travis.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@ jobs:
4545
env: EMBER_TRY_SCENARIO=ember-lts-3.4
4646
- env: EMBER_TRY_SCENARIO=ember-lts-3.8
4747
- env: EMBER_TRY_SCENARIO=ember-lts-3.12
48+
- env: EMBER_TRY_SCENARIO=ember-lts-3.16
49+
- env: EMBER_TRY_SCENARIO=ember-lts-3.20
50+
- env: EMBER_TRY_SCENARIO=ember-lts-3.24
4851
- env: EMBER_TRY_SCENARIO=ember-release
4952
- env: EMBER_TRY_SCENARIO=ember-beta
5053
- env: EMBER_TRY_SCENARIO=ember-canary

assets/browser-fetch.js.t

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
(function (originalGlobal) {
2-
define('fetch', ['exports'], function(exports) {
3-
'use strict';
4-
var Promise = originalGlobal.Ember.RSVP.Promise;
2+
<%= moduleHeader %>
3+
var Promise = RSVP.Promise;
54
var supportProps = [
65
'FormData',
76
'FileReader',
@@ -49,8 +48,8 @@
4948
return result;
5049
}
5150

52-
if (originalGlobal.Ember.Test) {
53-
originalGlobal.Ember.Test.registerWaiter(function() {
51+
if (Ember.Test) {
52+
Ember.Test.registerWaiter(function() {
5453
return pending === 0;
5554
});
5655

config/ember-try.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,30 @@ module.exports = async function() {
3030
}
3131
}
3232
},
33+
{
34+
name: 'ember-lts-3.16',
35+
npm: {
36+
devDependencies: {
37+
'ember-source': '~3.16.0'
38+
}
39+
}
40+
},
41+
{
42+
name: 'ember-lts-3.20',
43+
npm: {
44+
devDependencies: {
45+
'ember-source': '~3.20.0'
46+
}
47+
}
48+
},
49+
{
50+
name: 'ember-lts-3.24',
51+
npm: {
52+
devDependencies: {
53+
'ember-source': '~3.24.0'
54+
}
55+
}
56+
},
3357
{
3458
name: 'ember-release',
3559
npm: {

index.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ const map = stew.map;
2727
const Rollup = require('broccoli-rollup');
2828
const BroccoliDebug = require('broccoli-debug');
2929
const calculateCacheKeyForTree = require('calculate-cache-key-for-tree');
30+
const VersionChecker = require('ember-cli-version-checker');
3031

3132
const debug = BroccoliDebug.buildDebugCallback('ember-fetch');
3233

@@ -73,6 +74,9 @@ module.exports = {
7374
let hasEmberFetch = !!this.project.findAddonByName('ember-fetch');
7475
let hasEmberCliFastboot = !!this.project.findAddonByName('ember-cli-fastboot');
7576

77+
let emberSource = new VersionChecker(this.project).for('ember-source');
78+
let hasEmberSourceModules = emberSource.exists() && emberSource.gte('3.27.0');
79+
7680
if(isApp && hasEmberCliFastboot && !hasEmberFetch) {
7781
throw new Error(`Ember fetch is not installed as top-level dependency of the application using fastboot. Add ember-fetch as dependecy in application's package.json.
7882
For details check here - https://github.com/ember-cli/ember-fetch#top-level-addon`);
@@ -88,6 +92,7 @@ module.exports = {
8892
app._fetchBuildConfig = Object.assign({
8993
preferNative: false,
9094
alwaysIncludePolyfill: false,
95+
hasEmberSourceModules,
9196
browsers: this.project.targets && this.project.targets.browsers
9297
}, app.options['ember-fetch']);
9398

@@ -216,8 +221,19 @@ module.exports = {
216221
sourceMapConfig: { enabled: false }
217222
}), 'after-concat');
218223

224+
const moduleHeader = options.hasEmberSourceModules ? `
225+
define('fetch', ['exports', 'ember', 'rsvp'], function(exports, Ember__module, RSVP__module) {
226+
'use strict';
227+
var Ember = 'default' in Ember__module ? Ember__module['default'] : Ember__module;
228+
var RSVP = 'default' in RSVP__module ? RSVP__module['default'] : RSVP__module;` : `
229+
define('fetch', ['exports'], function(exports) {
230+
'use strict';
231+
var Ember = originalGlobal.Ember;
232+
var RSVP = Ember.RSVP;`
233+
219234
return debug(new Template(polyfillNode, TEMPLATE_PATH, function(content) {
220235
return {
236+
moduleHeader,
221237
moduleBody: content
222238
};
223239
}), 'browser-fetch');

package.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
"caniuse-api": "^3.0.0",
3737
"ember-cli-babel": "^7.23.1",
3838
"ember-cli-typescript": "^3.1.3",
39+
"ember-cli-version-checker": "^5.1.2",
3940
"node-fetch": "^2.6.1",
4041
"whatwg-fetch": "^3.6.2"
4142
},
@@ -97,5 +98,9 @@
9798
"abortcontroller-polyfill",
9899
"abortcontroller-polyfill/dist/cjs-ponyfill"
99100
]
101+
},
102+
"volta": {
103+
"node": "10.24.1",
104+
"yarn": "1.22.10"
100105
}
101106
}

0 commit comments

Comments
 (0)