apidoc2ts

Typescript interface generator based on ApiDoc

Usage no npm install needed!

<script type="module">
  import apidoc2ts from 'https://cdn.skypack.dev/apidoc2ts';
</script>

README

apiDoc to Interfaces

Command line tool that generates typescript interfaces from your apiDoc documentation.

Getting Started

Installing

To use this tool install it using npm:

$ npm install apidoc2ts -g

Usage

Get help on how to use the tool:

$ apidoc2ts --help

Generating interfaces from your apiDoc:

$ apidoc2ts --source ./doc/api_data.json --output generated --name interfaces.ts

Options

Required flags:

  • -s --source - path to the api_data.json file from apiDoc
  • -o --output - path to the output folder (default ./)
  • -n --name - name for the file with generated interfaces

Additional flags:

  • -g --gropuing = (single|url):
    • single - create one file with all interfaces in it (not the best idea)
    • url - create multiple folders with interfaces corresponding to URL structure
  • -v --version = (last|all) - which versions should be used
    • last - interfaces are generated only for the latest versions
    • all - interfaces are generated for all version and older version interfaces has a postfix _vx.x.x
  • -t --custom-types - list of custom types that should not be replaced with strings
  • -w --whitelist - list of endpoints names which should be processed, the rest of endpoints will be ignored
  • -e --parse-examples - if example requests/responses should be parsed if no parameters are specified

Prefixes/postfixes for top-level interfaces names:

  • --static-prefix - prefix for all interfaces names
  • --static-postfix - postfix for all interfaces names
  • --request-prefix - prefix for a request interface name
  • --request-postfix - postfix for a request interface name
  • --response-prefix - prefix for a response interface name
  • --response-postfix - postfix for a response interface name
  • --error-prefix - prefix for an error interface name
  • --error-postfix - postfix for an error interface name

Config file

The tool will look for a default config file called apidoc2ts.config.js in a current folder and combine flags from the file with a flags specified in command line. Note that command line flags override config file flags and all flags in config file should be in a camelCase.

Also you can specify a path to the config file which must contain all required flags:

-c --config - path to the config file

Example of the config file:

module.exports = {
    source: "source",
    name: "name.ts",
    output: "output",
    staticPrefix: "I",
    customTypes: ["type1", "type2"]
}

Contributing

We appreciate any contribution to this project whether it is a bug report, feature request or some improvement and have a small guide for that.

License

This project is licensed under the MIT License - see the LICENSE.md file for details