@@ -2,11 +2,25 @@ import fs from 'node:fs/promises';
22import path from 'node:path' ;
33
44import { PACKAGE_DEFAULTS } from '@/constants' ;
5+ import { omitKeys } from '@/utils/omitKeys' ;
56
6- export async function updatePackageData (
7- directoryPath : string ,
8- projectName : string
9- ) : Promise < { templateVersion : string } > {
7+ type UpdatePackageDataArgs = {
8+ directoryPath : string ;
9+ projectName : string ;
10+ scriptsToRemove ?: string [ ] ;
11+ dependenciesToRemove ?: string [ ] ;
12+ devDependenciesToRemove ?: string [ ] ;
13+ } ;
14+
15+ export async function updatePackageData ( {
16+ directoryPath,
17+ projectName,
18+ scriptsToRemove,
19+ dependenciesToRemove,
20+ devDependenciesToRemove,
21+ } : UpdatePackageDataArgs ) : Promise < {
22+ templateVersion : string ;
23+ } > {
1024 try {
1125 const packageJsonPath = path . join ( directoryPath , 'package.json' ) ;
1226 const packageJsonData = await fs . readFile ( packageJsonPath , 'utf-8' ) ;
@@ -18,15 +32,28 @@ export async function updatePackageData(
1832 author : _author ,
1933 version : templateVersion ,
2034 build,
35+ scripts,
36+ dependencies,
37+ devDependencies,
2138 ...originalPackageJsonData
2239 } = JSON . parse ( packageJsonData ) ;
2340
41+ const updatedScripts = omitKeys ( scripts , scriptsToRemove ) ;
42+ const updatedDependencies = omitKeys ( dependencies , dependenciesToRemove ) ;
43+ const updatedDevDependencies = omitKeys (
44+ devDependencies ,
45+ devDependenciesToRemove
46+ ) ;
47+
2448 const updatedPackageJson = {
2549 name : projectName ,
2650 version : PACKAGE_DEFAULTS . version ,
2751 build,
2852 license : PACKAGE_DEFAULTS . license ,
2953 private : PACKAGE_DEFAULTS . private ,
54+ scripts : updatedScripts ,
55+ dependencies : updatedDependencies ,
56+ devDependencies : updatedDevDependencies ,
3057 ...originalPackageJsonData ,
3158 } ;
3259
0 commit comments