@@ -10,42 +10,54 @@ import {
1010 updateJson ,
1111 updateNxJson ,
1212} from '@nx/devkit' ;
13+ import { PackageJson } from 'nx/src/utils/package-json' ;
1314import {
14- cpuCliVersion ,
15- cpuModelVersion ,
16- cpuNxPluginVersion ,
17- cpuUtilsVersion ,
15+ cpCliVersion ,
16+ cpModelVersion ,
17+ cpNxPluginVersion ,
18+ cpUtilsVersion ,
1819} from '../../utils/versions' ;
1920import { InitGeneratorSchema } from './schema' ;
2021
22+ const nxPluginPackageName = '@code-pushup/nx-plugin' ;
23+
2124function checkDependenciesInstalled ( host : Tree ) {
22- const packageJson = readJson ( host , 'package.json' ) ;
25+ const packageJson = readJson < PackageJson > ( host , 'package.json' ) ;
2326 const devDependencies : Record < string , string > = { } ;
2427 const dependencies = { } ;
25- packageJson . dependencies = packageJson . dependencies || { } ;
26- packageJson . devDependencies = packageJson . devDependencies || { } ;
28+ packageJson . dependencies = packageJson . dependencies ?? { } ;
29+ packageJson . devDependencies = packageJson . devDependencies ?? { } ;
2730
2831 // base deps
29- devDependencies [ '@code-pushup/nx-plugin' ] = cpuNxPluginVersion ;
30- devDependencies [ '@code-pushup/models' ] = cpuModelVersion ;
31- devDependencies [ '@code-pushup/utils' ] = cpuUtilsVersion ;
32- devDependencies [ '@code-pushup/cli' ] = cpuCliVersion ;
32+ devDependencies [ nxPluginPackageName ] = cpNxPluginVersion ;
33+ devDependencies [ '@code-pushup/models' ] = cpModelVersion ;
34+ devDependencies [ '@code-pushup/utils' ] = cpUtilsVersion ;
35+ devDependencies [ '@code-pushup/cli' ] = cpCliVersion ;
3336
3437 return addDependenciesToPackageJson ( host , dependencies , devDependencies ) ;
3538}
3639
3740function moveToDevDependencies ( tree : Tree ) {
38- updateJson ( tree , 'package.json' , packageJson => {
39- packageJson . dependencies = packageJson . dependencies || { } ;
40- packageJson . devDependencies = packageJson . devDependencies || { } ;
41+ updateJson ( tree , 'package.json' , ( packageJson : PackageJson ) => {
42+ const newPackageJson : PackageJson = {
43+ dependencies : { } ,
44+ devDependencies : { } ,
45+ ...packageJson ,
46+ } ;
4147
42- if ( packageJson . dependencies [ '@code-pushup/nx-plugin' ] ) {
43- packageJson . devDependencies [ '@code-pushup/nx-plugin' ] =
44- packageJson . dependencies [ '@code-pushup/nx-plugin' ] ;
45- delete packageJson . dependencies [ '@code-pushup/nx-plugin' ] ;
48+ if ( newPackageJson . dependencies ?. [ nxPluginPackageName ] !== undefined ) {
49+ const { [ nxPluginPackageName ] : version , ...dependencies } =
50+ newPackageJson . dependencies ;
51+ return {
52+ ...newPackageJson ,
53+ dependencies,
54+ devDependencies : {
55+ ...newPackageJson . devDependencies ,
56+ [ nxPluginPackageName ] : version ,
57+ } ,
58+ } ;
4659 }
47-
48- return packageJson ;
60+ return newPackageJson ;
4961 } ) ;
5062}
5163
@@ -63,7 +75,7 @@ function updateNxJsonConfig(tree: Tree) {
6375 updateNxJson ( tree , nxJson ) ;
6476}
6577
66- export async function initGenerator ( tree : Tree , schema : InitGeneratorSchema ) {
78+ export function initGenerator ( tree : Tree , schema : InitGeneratorSchema ) {
6779 if ( ! schema . skipPackageJson ) {
6880 moveToDevDependencies ( tree ) ;
6981 }
0 commit comments