@harnessio/oats-cli
v3.0.0
Published
![@harnessio/oats-cli](https://img.shields.io/npm/v/@harnessio/oats-cli.svg?style=flat-square)
Downloads
2,915
Maintainers
Keywords
Readme
CLI
Command-line utility for converting OpenAPI (formerly Swagger) definitions to TypeScript.
Installation
Using NPM:
npm i -D @harnessio/oats-cli
Using Yarn:
yarn add -D @harnessio/oats-cli
You can run the commands shown below using npx
(which is bundled with npm
).
For example npx oats import --config oats.config.ts
.
Usage
Usage: oats <cmd> [args]
Commands:
oats import Import OpenAPI specification and output TypeScript code
Options:
--version Show version number [boolean]
--help Show help [boolean]
Available commands
import
oats import
Import OpenAPI specification and output TypeScript code
Options:
--version Show version number [boolean]
--help Show help [boolean]
--file Path to OpenAPI spec file. Can be either a JSON or YAML fil
e. [string]
--url URL to remote OpenAPI spec file. [string]
-o, --output Location for the output. [string]
-c, --config Location for the config file.
[string] [default: "oats.config.ts"]
--clean Remove the output directory before generating service.
[boolean] [default: false]
--service Pick the services to generate from a config file. All the s
ervices will generated by default. [array] [default: []]
--genOnlyUsed By default, all types defined in spec are generated. Pass
this flag to, only generate types, which are referenced in
paths.
[boolean] [default: false]
--verbose Shows verbose output [boolean]
Config
Config can also be provided to the cli using a config file. By default, the cli
will look for oats.config.ts
file in the current directory. This can be changed
using the --config
flag. Using a TypeScript file for config is recommended.
// oats.config.ts
import { defineConfig } from '@harnessio/oats-cli/config';
export default defineConfig({
/**
* The plugins defined here will be used for all the services.
* You can also override the plugins at individual service level.
*/
plugins: [],
/**
* Config for the services to generated.
* Its a map of string and config
*/
services: {
// Name for the service.
// You can use this name to pick a service while using the --service flag
myservice: {
/**
* Path where the output should be written to.
* This is a required field.
*/
output: './path/to/output/folder',
/**
* Path from where the OpenAPI spec is to be read.
* Either path or url must be defined.
*/
file: string,
/**
* URL from where the OpenAPI spec is to be read.
* Either path or url must be defined.
*/
url: string,
/**
* By default, all types defined in spec are generated.
* Pass this flag, to only generate types, which are referenced in paths.
*/
genOnlyUsed: boolean,
/**
* A function, which can be used to pre-process the imported spec.
*
* The function will receive the spec as an argument and it needs to
* return the spec after the processing.
*/
transformer: (spec) => spec;
/**
* Plugins to be overriden for this particular service.
* The plugins will be replaced and not merged.
*/
plugins: Plugin[];
},
},
});
License
MIT.