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