UNPKG

typebox-cli

Version:

CLI tool for various TypeBox and JSON Schema operations

27 lines 1.13 kB
import * as Codegen from "@sinclair/typebox-codegen"; import fs from "node:fs"; import { loadSchemaInModule } from "./loadSchemaInModule.js"; import { TypeScriptToTypeBox } from "@sinclair/typebox-codegen"; export const modelNames = Object.keys(Codegen) .filter((key) => key.startsWith("ModelTo")) .map((key) => key.substring("ModelTo".length)); export function codegen({ source, module, modelName }) { const ts = source ? fs.readFileSync(source, { encoding: "utf8" }) : undefined; if (modelName === "TypeBox" && ts) { return TypeScriptToTypeBox.Generate(ts); } const model = module ? loadSchemaInModule(module) : ts ? Codegen.TypeScriptToModel.Generate(ts) : undefined; if (!model) { throw new Error("No source model specified. Either specify a typescript source or a typescript module with TypeBox schema"); } const generator = Codegen[`ModelTo${modelName}`]; if (!generator) { throw new Error(`Could not find generator for model ${modelName}`); } return generator.Generate(model); } //# sourceMappingURL=codegen.js.map