forked from mirror/misskey
42 lines
1.0 KiB
TypeScript
42 lines
1.0 KiB
TypeScript
import fs from "node:fs/promises";
|
|
import path from "node:path";
|
|
import micromatch from "micromatch";
|
|
|
|
fs.readFile(
|
|
path.resolve(__dirname, "../storybook-static/preview-stats.json")
|
|
).then((buffer) => {
|
|
const stats = JSON.parse(buffer.toString());
|
|
const modules = new Set(
|
|
process.argv.slice(2).map((arg) => path.relative(path.resolve(__dirname, ".."), path.resolve(__dirname, "../../..", arg)))
|
|
);
|
|
if (
|
|
micromatch(Array.from(modules), [
|
|
"../../assets/**",
|
|
"../../fluent-emojis/**",
|
|
"../../locales/**",
|
|
"../../misskey-assets/**",
|
|
"assets/**",
|
|
"public/**",
|
|
"../../pnpm-lock.yaml",
|
|
]).length
|
|
) {
|
|
return;
|
|
}
|
|
for (;;) {
|
|
const oldSize = modules.size;
|
|
for (const module of Array.from(modules)) {
|
|
if (stats.modules[module]) {
|
|
for (const reason of stats.modules[module].reasons) {
|
|
modules.add(reason.moduleName);
|
|
}
|
|
}
|
|
}
|
|
if (modules.size === oldSize) {
|
|
break;
|
|
}
|
|
}
|
|
for (const file of Array.from(modules)) {
|
|
process.stdout.write(` --only-story-files ${path.resolve(__dirname, "..", file)}`);
|
|
}
|
|
});
|