@@ -11,47 +11,34 @@ const pluginPackageJson = JSON.parse(fs.readFileSync(pluginPackageJsonPath, "utf
11
11
12
12
const isNgDependency = name => name . startsWith ( "@angular" ) ||
13
13
name === "rxjs" ||
14
- name === "zone.js" ;
14
+ name === "zone.js" ||
15
+ name === "typescript" ;
15
16
16
- function updateDeps ( deps , newDeps ) {
17
- // set app dependencies to ones required from plugin
17
+ function updateDeps ( deps , devDeps , newDeps ) {
18
18
Object . keys ( newDeps )
19
19
. filter ( isNgDependency )
20
- . filter ( dependencyName => deps . hasOwnProperty ( dependencyName ) )
21
20
. map ( dependencyName => ( {
22
21
dependencyName,
23
- version : pluginPackageJson . peerDependencies [ dependencyName ]
22
+ version : newDeps [ dependencyName ]
24
23
} ) )
25
- . filter ( ( { dependencyName, version } ) => deps [ dependencyName ] !== version )
26
24
. forEach ( ( { dependencyName, version } ) => {
27
- deps [ dependencyName ] = version ;
25
+ if ( devDeps [ dependencyName ] ) {
26
+ devDeps [ dependencyName ] = version ;
27
+ } else {
28
+ deps [ dependencyName ] = version ;
29
+ }
30
+
28
31
console . log ( `Updated dependency ${ dependencyName } to version: ${ version } .` ) ;
29
32
} ) ;
30
-
31
- // remove platform-browser-dynamic if present
32
- if ( deps . hasOwnProperty ( browserDynamicDependency ) ) {
33
- delete deps [ browserDynamicDependency ] ;
34
- console . log ( `Removed ${ browserDynamicDependency } ` ) ;
35
- }
36
-
37
-
38
- return deps ;
39
33
}
40
34
41
- let pluginDeps = pluginPackageJson . peerDependencies ;
42
- Object . keys ( pluginPackageJson . devDependencies )
43
- . filter ( isNgDependency )
44
- . filter ( depName => ! pluginDeps . hasOwnProperty ( depName ) )
45
- . forEach ( depName => {
46
- pluginDeps [ depName ] = pluginPackageJson . devDependencies [ depName ] ;
47
- } ) ;
48
-
49
- const projectPath = path . dirname ( path . dirname ( pluginPath ) ) ;
35
+ const pluginDeps = pluginPackageJson . peerDependencies ;
36
+ const projectPath = process . env . INIT_CWD || path . dirname ( path . dirname ( pluginPath ) ) ;
50
37
const appPackageJsonPath = path . join ( projectPath , "package.json" ) ;
51
38
const appPackageJson = JSON . parse ( fs . readFileSync ( appPackageJsonPath , "utf8" ) ) ;
52
39
53
- appPackageJson . dependencies = updateDeps ( appPackageJson . dependencies , pluginDeps ) ;
54
- appPackageJson . devDependencies = updateDeps ( appPackageJson . devDependencies , pluginDeps ) ;
40
+ const { dependencies, devDependencies } = appPackageJson ;
41
+ updateDeps ( dependencies , devDependencies , pluginDeps ) ;
55
42
56
43
fs . writeFileSync ( appPackageJsonPath , JSON . stringify ( appPackageJson , null , 2 ) ) ;
57
44
0 commit comments