Skip to content

Commit 6f929b5

Browse files
committed
add default blueprint that adds node: current to targets
1 parent 18aa8b2 commit 6f929b5

File tree

1 file changed

+44
-0
lines changed
  • packages/ember-cli-fastboot/blueprints/ember-cli-fastboot

1 file changed

+44
-0
lines changed
Lines changed: 44 additions & 0 deletions
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+
};

0 commit comments

Comments
 (0)