@thinkdeeply/td-openapi-codegen
v0.5.2
Published
Generate service-config and typed API client modules from openapi-typescript api-schema.ts output
Downloads
39
Readme
@thinkdeeply/td-openapi-codegen
Generate service-config.mjs from an api-schema.ts file produced by openapi-typescript, then generate typed API service modules (TypeScript) from that config.
openapi-typescript is bundled — you do not need a separate devDependency on it for normal use.
Install
npm add -D @thinkdeeply/td-openapi-codegenOne command in your app (npm run api:sync)
Pass --input and --output on the command line (same values you would give openapi-typescript):
{
"scripts": {
"api:sync": "td-openapi-codegen sync --input http://localhost:58000/openapi.json --output src/types/api-schema.ts"
}
}--url is an alias for --input. Values may include ${ENV_VAR}.
Alternatively, with no CLI args, sync reads tdOpenapiCodegen from package.json:
{
"tdOpenapiCodegen": {
"input": "http://localhost:58000/openapi.json",
"output": "src/types/api-schema.ts"
},
"scripts": {
"api:sync": "td-openapi-codegen sync"
}
}Optional package fields / flags:
| Field / flag | Effect |
|--------|--------|
| url (in JSON) | Alias for input |
| preserveExisting / --preserve-existing | Keep manual query helpers in service-config |
| clean / --clean | Delete schema file and default services folder before fetching |
You can still pass raw openapi-typescript args instead:
npx td-openapi-codegen sync https://other.example/openapi.json -o src/types/api-schema.ts
npx td-openapi-codegen sync --input "$OPENAPI_URL" --output src/types/api-schema.ts --cleanWhere files go (defaults)
If output is src/types/api-schema.ts:
src/types/service-config.mjssrc/types/services/*.ts- JSDoc import into the schema is computed automatically (e.g.
./api-schema).
Optional sync flags before openapi args: --service-config, --services-dir.
Imports into your app lib/
Generated services resolve the nearest lib/ upward from the services directory (e.g. src/types/services → src/lib).
Types only (no service codegen)
npx td-openapi-codegen openapi https://example.com/openapi.json -o src/types/api.tsGranular commands
npx td-openapi-codegen config [--schema <path> | <path>] [--preserve-existing]
npx td-openapi-codegen services [--schema <path> | <path>]Type reference
import type { CodegenConfig } from "@thinkdeeply/td-openapi-codegen/config"import type { TdOpenapiCodegenPackageConfig } from "@thinkdeeply/td-openapi-codegen/config"— shape oftdOpenapiCodegenin package.json
License
MIT
