14 lines
728 B
JavaScript
14 lines
728 B
JavaScript
#!/usr/bin/env node
|
|||
|
|
import { readFile, writeFile } from "node:fs/promises";
|
||
|
|
import { generateTypeScriptBindings } from "./index.js";
|
||
|
|
|
||
|
|
const main = async () => {
|
||
|
|
const [schema, revision, output, options, ...rest] = process.argv.slice(2);
|
||
|
|
if (!schema || !revision || !output || rest.length) throw new Error(
|
||
|
|
"usage: quixos-codegen-ts SCHEMA.json PACKAGE_REVISION OUTPUT.ts [OPTIONS.json]");
|
||
|
|
const generated = generateTypeScriptBindings(JSON.parse(await readFile(schema, "utf8")), revision,
|
||
|
|
options ? JSON.parse(await readFile(options, "utf8")) : {});
|
||
|
|
await writeFile(output, generated);
|
||
|
|
};
|
||
|
|
main().catch((error: unknown) => { console.error(error instanceof Error ? error.message : error); process.exitCode = 1; });
|