Roo-Code/scripts/generate-types.mts
2025-05-13 12:40:19 -07:00

33 lines
1,010 B
TypeScript

import path from "path"
import fs from "fs"
import { zodToTs, createTypeAlias, printNode } from "zod-to-ts"
import { $ } from "execa"
import schemas from "../src/schemas"
const { typeDefinitions } = schemas
async function main() {
const types: string[] = [
"// This file is automatically generated by running `npm run generate-types`\n// Do not edit it directly.",
]
for (const { schema, identifier } of typeDefinitions) {
types.push(printNode(createTypeAlias(zodToTs(schema, identifier).node, identifier)))
types.push(`export type { ${identifier} }`)
}
fs.writeFileSync("src/exports/types.ts", types.join("\n\n"))
await $`npx tsup src/exports/interface.ts --dts-only -d out`
fs.writeFileSync("out/interface.d.ts", "src/exports/roo-code.d.ts")
await $`npx prettier --write src/exports/types.ts src/exports/roo-code.d.ts`
if (fs.existsSync(path.join("..", "Roo-Code-Types"))) {
fs.copyFileSync("src/exports/roo-code.d.ts", path.join("..", "Roo-Code-Types", "index.d.ts"))
}
}
main()