File tree 3 files changed +56
-6
lines changed
packages/ember-cli-fastboot
blueprints/ember-cli-fastboot
3 files changed +56
-6
lines changed Original file line number Diff line number Diff line change
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
+ } ;
Original file line number Diff line number Diff line change 39
39
"fs-extra" : " ^7.0.0" ,
40
40
"json-stable-stringify" : " ^1.0.1" ,
41
41
"md5-hex" : " ^2.0.0" ,
42
+ "recast" : " ^0.19.1" ,
42
43
"silent-error" : " ^1.1.0"
43
44
},
44
45
"devDependencies" : {
Original file line number Diff line number Diff line change @@ -11772,7 +11772,7 @@ parse5@5.1.0:
11772
11772
resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2"
11773
11773
integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==
11774
11774
11775
- parse5@5.1.1:
11775
+ parse5@5.1.1, parse5@^5.1.1 :
11776
11776
version "5.1.1"
11777
11777
resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178"
11778
11778
integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==
@@ -11784,11 +11784,6 @@ parse5@^3.0.3:
11784
11784
dependencies:
11785
11785
"@types/node" "*"
11786
11786
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
-
11792
11787
parseqs@0.0.5:
11793
11788
version "0.0.5"
11794
11789
resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d"
@@ -12467,6 +12462,16 @@ recast@^0.18.1:
12467
12462
private "^0.1.8"
12468
12463
source-map "~0.6.1"
12469
12464
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
+
12470
12475
rechoir@^0.6.2:
12471
12476
version "0.6.2"
12472
12477
resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
You can’t perform that action at this time.
0 commit comments