import { readdirSync, readFileSync, writeFileSync } from "node:fs"; import { basename, join } from "node:path"; const docsDir = new URL("../src/docs", import.meta.url); const outputFile = new URL("../src/docs.generated.ts", import.meta.url); const docs = Object.fromEntries( readdirSync(docsDir) .filter((fileName) => fileName.endsWith(".md")) .sort() .map((fileName) => [ basename(fileName, ".md"), readFileSync(join(docsDir.pathname, fileName), "utf8"), ]) ); const output = [ "// This file is generated by scripts/generate-docs.mjs.", "// Edit markdown files in src/docs instead.", `export const projectBuildDocs = ${JSON.stringify(docs, null, 2)} as const;`, "", "export type ProjectBuildDocName = keyof typeof projectBuildDocs;", "", ].join("\n"); writeFileSync(outputFile, output, "utf8");