setup: make self inclusion option when finding dependencies

This commit is contained in:
Abdullah Atta
2025-10-11 19:34:08 +05:00
parent 2b6ac28838
commit 3eccb1633b
2 changed files with 11 additions and 5 deletions

View File

@@ -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);
}

View File

@@ -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);
}