diff --git a/scripts/bootstrap.mjs b/scripts/bootstrap.mjs index 087061f79..4ff5381c9 100644 --- a/scripts/bootstrap.mjs +++ b/scripts/bootstrap.mjs @@ -61,7 +61,10 @@ if (IS_BOOTSTRAP_ALL) { new Set( ( await Promise.all( - allPackages.map(async (scope) => await findDependencies(scope)) + allPackages.map( + async (scope) => + await findDependencies(scope, { includeSelf: true }) + ) ) ).flat() ).values() @@ -69,7 +72,9 @@ if (IS_BOOTSTRAP_ALL) { await bootstrapPackages(dependencies); } else { - const dependencies = await findDependencies(scopes[args.scope]); + const dependencies = await findDependencies(scopes[args.scope], { + includeSelf: true + }); await bootstrapPackages(dependencies); } diff --git a/scripts/utils.mjs b/scripts/utils.mjs index 60ccee174..39ca719ad 100644 --- a/scripts/utils.mjs +++ b/scripts/utils.mjs @@ -40,7 +40,7 @@ export async function findPackages(projects, root) { return pkgs; } -export async function findDependencies(packagePath) { +export async function findDependencies(packagePath, { includeSelf }) { const key = path.resolve(packagePath); if (depMemo.has(key)) return Array.from(depMemo.get(key)); const pkg = readPackage(packagePath); @@ -52,9 +52,10 @@ export async function findDependencies(packagePath) { filterDependencies({ ...pkg.dependencies, ...pkg.devDependencies }) ); for (const dep of dependencies) - for (const c of await findDependencies(dep)) dependencies.add(c); + for (const c of await findDependencies(dep, { includeSelf })) + dependencies.add(c); - dependencies.add(path.resolve(packagePath)); + if (includeSelf) dependencies.add(path.resolve(packagePath)); depMemo.set(key, dependencies); return Array.from(dependencies); }