OpenAPI Typescript Codegen
Node.js library that generates Typescript clients based on the OpenAPI specification.
Why?
- Frontend
❤️ OpenAPI, but we do not want to use JAVA codegen in our builds - Quick, lightweight, robust and framework-agnostic
🚀 - Supports generation of TypeScript clients
- Supports generation of react-query hooks (queries, mutations) for each operation
- Supports fetch by default but switches to XHR (via dynamic import) when upload progress is needed
- Supports OpenAPI specification v2.0 and v3.0
- Supports JSON and YAML files for input
- Supports generation through CLI, Node.js and NPX
- Supports aborting of requests (via AbortController and AbortSignal)
- Supports external references using json-schema-ref-parser
Install
npm install openapi-typescript-codegen --save-dev
Usage
$ openapi --help
Usage: openapi [options]
Options:
-V, --version output the version number
-i, --input <value> OpenAPI specification, can be a path, url or string content (required)
-o, --output <value> Output directory (required)
--exportCore Write core files to disk (default: true)
--exportServices Write services to disk (default: true)
--exportModels Write models to disk (default: true)
--exportHooks Write react-query hooks to disk (default: false)
--exportSchemas Write schemas to disk (default: false)
--indent <value> Indentation options [4, 2, tab] (default: "4")
--postfix <value> Service name postfix (default: "Service")
--reactQueryImport <value> Import specifier for react-query (default: "@tanstack/react-query")
-h, --help display help for command
Examples
$ openapi --input ./spec.json --output ./generated
$ openapi --input ./spec.json --output ./generated --exportHooks --indent 2
Documentation
- Basic usage
- OpenAPI object
-
Client instances
--name
-
Runtime schemas
--exportSchemas
- Enum with custom names and descriptions
- Nullable props (OpenAPI v2)
- Authorization
- External references
- Canceling requests -- TODO update