Skip to content

Commit 75f436c

Browse files
author
Robert Jackson
authored
Merge pull request #770 from mansona/add-node-source
2 parents 9ac76eb + 6f929b5 commit 75f436c

File tree

3 files changed

+56
-6
lines changed

3 files changed

+56
-6
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/* eslint-env node */
2+
const recast = require('recast');
3+
const { readFileSync, writeFileSync } = require('fs');
4+
5+
module.exports = {
6+
description: '',
7+
normalizeEntityName() {
8+
// no-op
9+
},
10+
11+
afterInstall() {
12+
let targetsFile = './config/targets.js'
13+
14+
if(this.project.isEmberCLIAddon()) {
15+
targetsFile = './tests/dummy/config/targets.js';
16+
}
17+
18+
const targetsAst = recast.parse(readFileSync(targetsFile));
19+
20+
recast.visit(targetsAst, {
21+
visitAssignmentExpression (path) {
22+
let node = path.node;
23+
24+
if (node.left.object.name === 'module' && node.left.property.name === 'exports') {
25+
let nodeProperty = node.right.properties.find(property => property.key.name === 'node');
26+
27+
if(!nodeProperty) {
28+
let builders = recast.types.builders;
29+
nodeProperty = builders.property(
30+
'init',
31+
builders.identifier('node'),
32+
builders.literal('current')
33+
);
34+
node.right.properties.push(nodeProperty);
35+
}
36+
}
37+
38+
this.traverse(path);
39+
}
40+
});
41+
42+
writeFileSync(targetsFile, recast.print(targetsAst, { tabWidth: 2, quote: 'single' }).code);
43+
}
44+
};

packages/ember-cli-fastboot/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
"fs-extra": "^7.0.0",
4040
"json-stable-stringify": "^1.0.1",
4141
"md5-hex": "^2.0.0",
42+
"recast": "^0.19.1",
4243
"silent-error": "^1.1.0"
4344
},
4445
"devDependencies": {

yarn.lock

+11-6
Original file line numberDiff line numberDiff line change
@@ -11772,7 +11772,7 @@ parse5@5.1.0:
1177211772
resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2"
1177311773
integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==
1177411774

11775-
parse5@5.1.1:
11775+
parse5@5.1.1, parse5@^5.1.1:
1177611776
version "5.1.1"
1177711777
resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178"
1177811778
integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==
@@ -11784,11 +11784,6 @@ parse5@^3.0.3:
1178411784
dependencies:
1178511785
"@types/node" "*"
1178611786

11787-
parse5@^5.1.1:
11788-
version "5.1.1"
11789-
resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178"
11790-
integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==
11791-
1179211787
parseqs@0.0.5:
1179311788
version "0.0.5"
1179411789
resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d"
@@ -12467,6 +12462,16 @@ recast@^0.18.1:
1246712462
private "^0.1.8"
1246812463
source-map "~0.6.1"
1246912464

12465+
recast@^0.19.1:
12466+
version "0.19.1"
12467+
resolved "https://registry.yarnpkg.com/recast/-/recast-0.19.1.tgz#555f3612a5a10c9f44b9a923875c51ff775de6c8"
12468+
integrity sha512-8FCjrBxjeEU2O6I+2hyHyBFH1siJbMBLwIRvVr1T3FD2cL754sOaJDsJ/8h3xYltasbJ8jqWRIhMuDGBSiSbjw==
12469+
dependencies:
12470+
ast-types "0.13.3"
12471+
esprima "~4.0.0"
12472+
private "^0.1.8"
12473+
source-map "~0.6.1"
12474+
1247012475
rechoir@^0.6.2:
1247112476
version "0.6.2"
1247212477
resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"

0 commit comments

Comments
 (0)