@@ -94,7 +94,7 @@ export class BumpDecoupledLocalDependencies extends CommandLineAction {
9494 const autoinstallerName : string = folderItem . name ;
9595 const packageJsonPath : string = `${ commonAutoinstallersFolder } /${ autoinstallerName } /package.json` ;
9696 try {
97- const packageJsonEditor : PackageJsonEditor = PackageJsonEditor . load ( packageJsonPath ) ;
97+ const packageJsonEditor : PackageJsonEditor = await PackageJsonEditor . loadAsync ( packageJsonPath ) ;
9898
9999 const { dependencyList, devDependencyList } = packageJsonEditor ;
100100 const decoupledLocalDependencies : Set < string > = new Set ( ) ;
@@ -135,40 +135,45 @@ export class BumpDecoupledLocalDependencies extends CommandLineAction {
135135
136136 terminal . writeLine ( ) ;
137137
138- for ( const { packageName, decoupledLocalDependencies, subspace, packageJsonEditor } of projectsToUpdate ) {
139- const { allowedAlternativeVersions } = subspace ?. getCommonVersions ( ) ?? { } ;
140-
141- for ( const cyclicDependencyProject of decoupledLocalDependencies ) {
142- const { version : existingVersion } =
143- packageJsonEditor . tryGetDependency ( cyclicDependencyProject ) ??
144- packageJsonEditor . tryGetDevDependency ( cyclicDependencyProject ) ??
145- { } ;
146- if (
147- existingVersion &&
148- allowedAlternativeVersions ?. get ( cyclicDependencyProject ) ?. includes ( existingVersion )
149- ) {
150- // Skip if the existing version is allowed by common-versions.json
151- continue ;
152- }
138+ await Async . forEachAsync (
139+ projectsToUpdate ,
140+ async ( { packageName, decoupledLocalDependencies, subspace, packageJsonEditor } ) => {
141+ const { allowedAlternativeVersions } = subspace ?. getCommonVersions ( ) ?? { } ;
142+
143+ for ( const cyclicDependencyProject of decoupledLocalDependencies ) {
144+ const { version : existingVersion } =
145+ packageJsonEditor . tryGetDependency ( cyclicDependencyProject ) ??
146+ packageJsonEditor . tryGetDevDependency ( cyclicDependencyProject ) ??
147+ { } ;
148+ if (
149+ existingVersion &&
150+ allowedAlternativeVersions ?. get ( cyclicDependencyProject ) ?. includes ( existingVersion )
151+ ) {
152+ // Skip if the existing version is allowed by common-versions.json
153+ continue ;
154+ }
153155
154- const newVersion : string = decoupledLocalDependencyVersionsByName . get ( cyclicDependencyProject ) ! ;
155- if ( packageJsonEditor . tryGetDependency ( cyclicDependencyProject ) ) {
156- packageJsonEditor . addOrUpdateDependency (
157- cyclicDependencyProject ,
158- newVersion ,
159- DependencyType . Regular
160- ) ;
161- }
156+ const newVersion : string = decoupledLocalDependencyVersionsByName . get ( cyclicDependencyProject ) ! ;
157+ if ( packageJsonEditor . tryGetDependency ( cyclicDependencyProject ) ) {
158+ packageJsonEditor . addOrUpdateDependency (
159+ cyclicDependencyProject ,
160+ newVersion ,
161+ DependencyType . Regular
162+ ) ;
163+ }
162164
163- if ( packageJsonEditor . tryGetDevDependency ( cyclicDependencyProject ) ) {
164- packageJsonEditor . addOrUpdateDependency ( cyclicDependencyProject , newVersion , DependencyType . Dev ) ;
165+ if ( packageJsonEditor . tryGetDevDependency ( cyclicDependencyProject ) ) {
166+ packageJsonEditor . addOrUpdateDependency ( cyclicDependencyProject , newVersion , DependencyType . Dev ) ;
167+ }
165168 }
166- }
167169
168- if ( packageJsonEditor . saveIfModified ( ) ) {
169- terminal . writeLine ( `Updated ${ packageName } ` ) ;
170- }
171- }
170+ const modified : boolean = await packageJsonEditor . saveIfModifiedAsync ( ) ;
171+ if ( modified ) {
172+ terminal . writeLine ( `Updated ${ packageName } ` ) ;
173+ }
174+ } ,
175+ { concurrency : 10 }
176+ ) ;
172177
173178 terminal . writeLine ( ) ;
174179
0 commit comments