Files
opencloud/scripts/sync-api-contract.mjs
T
Mplan 8ba0212eec refactor(api)!: align client with canonical HTTP contract
Route all feature requests through business API modules, sync generated DTOs, and add communication tests and architecture documentation.

BREAKING CHANGE: migrate the client to plural resource paths, canonical snake_case fields, ISO timestamps, and explicit paginated responses.
2026-09-30 12:04:58 +08:00

18 lines
657 B
JavaScript

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)
}