Node.js library that generates Typescript clients based on the OpenAPI specification.
- 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 generations of Fetch, Node-Fetch, Axios, Angular and XHR http clients
 - Supports OpenAPI specification v2.0 and v3.0
 - Supports JSON and YAML files for input
 - Supports generation through CLI, Node.js and NPX
 - Supports tsc and @babel/plugin-transform-typescript
 - Supports aborting of requests (cancelable promise pattern)
 - Supports external references using json-schema-ref-parser
 
npm install openapi-typescript-codegen --save-dev
$ 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)
    -c, --client <value>      HTTP client to generate [fetch, xhr, node, axios, angular] (default: "fetch")
    --name <value>            Custom client class name
    --useOptions              Use options instead of arguments
    --useUnionTypes           Use union types instead of enums
    --exportCore <value>      Write core files to disk (default: true)
    --exportServices <value>  Write services to disk (default: true)
    --exportModels <value>    Write models to disk (default: true)
    --exportSchemas <value>   Write schemas to disk (default: false)
    --indent <value>          Indentation options [4, 2, tab] (default: "4")
    --postfixServices         Service name postfix (default: "Service")
    --postfixModels           Model name postfix
    --request <value>         Path to custom request file
    -h, --help                display help for command
  Examples
    $ openapi --input ./spec.json --output ./generated
    $ openapi --input ./spec.json --output ./generated --client xhr
To build the Docker container, execute the following command:
docker build . --tag openapi-typescript-codegen
After this is done, you can execute the CLI commands:
docker run openapi-typescript-codegen --help
docker run openapi-typescript-codegen --input sample.yaml --output client
- Basic usage
 - OpenAPI object
 - Client instances 
--name - Argument vs. Object style 
--useOptions - Enums vs. Union types 
--useUnionTypes - Runtime schemas 
--exportSchemas - Enum with custom names and descriptions
 - Nullable props (OpenAPI v2)
 - Authorization
 - External references
 - Canceling requests
 - Custom request file