Skip to content

Commit 5e5becd

Browse files
committed
patch import { service } on old ember versions
1 parent 48a43fa commit 5e5becd

4 files changed

Lines changed: 33 additions & 5 deletions

File tree

packages/ember-cli-fastboot/index.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ const p = require('ember-cli-preprocess-registry/preprocessors');
2121
const fastbootTransform = require('fastboot-transform');
2222
const existsSync = fs.existsSync;
2323

24+
const ServiceImportReplacer = require('./lib/broccoli/service-import');
25+
2426
let checker;
2527
function getVersionChecker(context) {
2628
if (!checker) {
@@ -150,6 +152,14 @@ module.exports = {
150152
return tree;
151153
},
152154

155+
treeForAddon(tree) {
156+
if (this._getEmberVersion().lt('4.1.0')) {
157+
return this._super.treeForAddon.call(this, new ServiceImportReplacer(tree))
158+
}
159+
160+
return this._super.treeForAddon.call(this, tree);
161+
},
162+
153163
_processAddons(addons, fastbootTrees) {
154164
addons.forEach((addon) => {
155165
this._processAddon(addon, fastbootTrees);
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
const Filter = require('broccoli-persistent-filter');
2+
3+
module.exports = class ServiceImportReplacer extends Filter {
4+
constructor(inputNode, search, replace, options = {}) {
5+
super(inputNode, {
6+
annotation: options.annotation
7+
});
8+
this.extensions = ['js'];
9+
this.targetExtension = 'js';
10+
}
11+
processString(content) {
12+
return content.replace(`import { service } from '@ember/service';`, `import { inject as service } from '@ember/service';`);
13+
}
14+
}

packages/ember-cli-fastboot/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,15 @@
2828
"test": "concurrently \"pnpm:lint\" \"pnpm:test:*\" --names \"lint,test:\" --prefixColors auto",
2929
"test:mocha": "mocha",
3030
"test:ember": "ember test",
31-
"test:ember-compatibility": "ember try:each"
31+
"test-ember-compatibility": "ember try:each"
3232
},
3333
"dependencies": {
3434
"@babel/core": "^7.29.0",
3535
"broccoli-concat": "^4.2.5",
3636
"broccoli-file-creator": "^2.1.1",
3737
"broccoli-funnel": "^3.0.8",
3838
"broccoli-merge-trees": "^4.2.0",
39+
"broccoli-persistent-filter": "^3.1.3",
3940
"broccoli-plugin": "^4.0.7",
4041
"chalk": "^4.1.2",
4142
"ember-cli-babel": "^8.3.1",

pnpm-lock.yaml

Lines changed: 7 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)