// Generates src/api/schema.d.ts with openapi-typescript. // Usage: npm run gen:api [-- ] // Default: ../openapi.json when it exists, else openapi.contract.json. import { existsSync } from 'node:fs' import { spawnSync } from 'node:child_process' import path from 'node:path' import { fileURLToPath } from 'node:url' const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..') let src = process.argv[2] if (!src) { const real = path.resolve(root, '..', 'openapi.json') src = existsSync(real) ? real : path.join(root, 'openapi.contract.json') } console.log(`gen:api from ${src}`) const bin = path.join(root, 'node_modules', '.bin', 'openapi-typescript') const r = spawnSync(bin, [src, '-o', path.join(root, 'src/api/schema.d.ts')], { stdio: 'inherit' }) process.exit(r.status ?? 1)