diff options
Diffstat (limited to 'scripts/gen_index.js')
-rw-r--r-- | scripts/gen_index.js | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/scripts/gen_index.js b/scripts/gen_index.js new file mode 100644 index 00000000..8a3c7eb8 --- /dev/null +++ b/scripts/gen_index.js @@ -0,0 +1,37 @@ +const path = require("path"); +const fs = require("fs"); +const { execIn, getLines } = require("./utils"); + +if (!process.argv[2] || !fs.existsSync(process.argv[2])) { + console.log("Please pass a directory that exists!"); + process.exit(1); +} +console.log(`// ${process.argv[2]}/index.ts`); +const recurse = process.argv.includes("--recursive"); + +const files = fs.readdirSync(process.argv[2]).filter((x) => x.endsWith(".ts") && x != "index.ts"); + +let output = ""; + +files.forEach((x) => (output += `export * from "./${x.replaceAll(".ts", "")}";\n`)); + +const dirs = fs.readdirSync(process.argv[2]).filter((x) => { + try { + fs.readdirSync(path.join(process.argv[2], x)); + return true; + } catch (e) { + return false; + } +}); +dirs.forEach((x) => { + output += `export * from "./${x}/index";\n`; +}); +console.log(output); +fs.writeFileSync(path.join(process.argv[2], "index.ts"), output); + +dirs.forEach((x) => { + if (recurse) + console.log( + execIn([process.argv[0], process.argv[1], `"${path.join(process.argv[2], x)}"`, "--recursive"].join(" "), process.cwd()) + ); +}); |