Skip to content

Latest commit

 

History

History
130 lines (106 loc) · 3.9 KB

README.md

File metadata and controls

130 lines (106 loc) · 3.9 KB

CLI

@harnessio/oats-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.