-
Notifications
You must be signed in to change notification settings - Fork 47
/
createIndex.ts
32 lines (23 loc) · 780 Bytes
/
createIndex.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import { readdirSync, writeFileSync, statSync } from "fs";
const ignore = ["src/index.ts", "src/cli.ts", "src/utils/cliTools.ts"];
function checkSrcDir(path: string): string[] {
const lines: string[] = [];
for (const item of readdirSync(path)) {
const itemPath = path + "/" + item;
if (ignore.includes(itemPath)) {
continue;
}
if (statSync(itemPath).isDirectory()) {
lines.push(...checkSrcDir(itemPath));
} else if (item.endsWith(".ts")) {
lines.push('export * from "./' + itemPath.slice(4, -2) + 'js"');
}
}
return lines;
}
const lines = checkSrcDir("src");
lines.push(
'import { jsonSchemaToZod } from "./jsonSchemaToZod.js"',
"export default jsonSchemaToZod",
);
writeFileSync("./src/index.ts", lines.join("\n"));