Skip to content

Commit fcd395a

Browse files
committed
Update a downstream project to use the async APIs.
1 parent 2734155 commit fcd395a

1 file changed

Lines changed: 36 additions & 31 deletions

File tree

repo-scripts/repo-toolbox/src/cli/actions/BumpDecoupledLocalDependencies.ts

Lines changed: 36 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)