import { readFile, writeFile } from 'node:fs/promises' import { resolve } from 'node:path' import { format, resolveConfig } from 'prettier' const source = resolve(process.env.OPENCLOUD_API_DIR || '../hono-api', 'contracts/api.ts') const target = resolve('src/types/api-contract.ts') const output = await format(await readFile(source, 'utf8'), { ...(await resolveConfig(target)), filepath: target, }) if (process.argv.includes('--check')) { if ((await readFile(target, 'utf8')) !== output) { throw new Error('API 契约已变化,请先在后端生成,再运行 npm run api:sync') } } else { await writeFile(target, output) }