pi / scripts /package-workspaces.mjs
SaylorTwift's picture
SaylorTwift HF Staff
Add files using upload-large-folder tool
aa47613 verified
Raw
History Blame Contribute Delete
629 Bytes
import { existsSync, readdirSync } from "node:fs";
import { join } from "node:path";
const SKIPPED_DIRECTORIES = new Set(["dist", "node_modules"]);
export function findPackageDirectories(root = "packages") {
const packageDirectories = [];
function visit(directory) {
if (existsSync(join(directory, "package.json"))) {
packageDirectories.push(directory);
}
for (const entry of readdirSync(directory, { withFileTypes: true })) {
if (!entry.isDirectory() || SKIPPED_DIRECTORIES.has(entry.name)) {
continue;
}
visit(join(directory, entry.name));
}
}
visit(root);
return packageDirectories.sort();
}