3.1.2 • Published 7 months ago

@spec2ts/openapi-client v3.1.2

Weekly downloads
60
License
MIT
Repository
github
Last release
7 months ago

@spec2ts/openapi-client

NPM version NPM download Build Status

@spec2ts/openapi-client is an utility to create a TypeScript HTTP Client with entity types from OpenAPI v3 specification. Unlike other code generators @spec2ts/openapi-client does not use templates to generate code but uses TypeScript's built-in API to generate and pretty-print an abstract syntax tree (AST).

Features

  • AST-based: Unlike other code generators @spec2ts/openapi-client does not use templates to generate code but uses TypeScript's built-in API to generate and pretty-print an abstract syntax tree.
  • Tree-shakeable: Individually exported types allows you to bundle only the ones you actually use.
  • YAML or JSON: Use YAML or JSON for your OpenAPI v3 specification.
  • External references: Resolves automatically external references and bundle or import them in generated files.
  • Implementation agnostic: Use generated types in any projet or framework.

Installation

Install in your project:

npm install @spec2ts/openapi-client

CLI Usage

oapi2tsclient <input..>

Generate TypeScript HTTP client from OpenAPI specification

Positionals:
  input  Path to OpenAPI Specification(s) to convert to TypeScript HTTP client
                                                                        [string]

Options:
  --version         Show version number                                [boolean]
  --help            Show help usage                                    [boolean]
  --output, -o      Output file for generated client                    [string]
  --cwd, -c         Root directory for resolving $refs                  [string]
  --avoidAny        Avoid the `any` type and use `unknown` instead     [boolean]
  --inlineRequired  Create a method argument for each required parameter
                                                                       [boolean]
  --importFetch     Use a custom fetch implementation
                      [choices: "node-fetch", "cross-fetch", "isomorphic-fetch"]
  --packageName     Generate a package.json with given name             [string]
  --packageVersion  Sets the version of the package.json                [string]
  --packageAuthor   Sets the author of the package.json                 [string]
  --packageLicense  Sets the license of the package.json                [string]
  --packagePrivate  Sets the package.json private                      [boolean]
  --banner, -b      Comment prepended to the top of each generated file [string]

Programmatic Usage

import { printer } from "@spec2ts/core";
import { generateClientFile } from "@spec2ts/openapi-client";

async function generate(path: string): Promise<string> {
    const result = await generateClientFile(path);
    return printer.printNodes(result);
}

Compatibility Matrix

TypeScript versionspec2ts version
v3.x.xv1
v4.x.xv2

License

This project is under MIT License. See the LICENSE file for the full license text.

2.0.0

8 months ago

3.1.2

7 months ago

3.1.1

7 months ago

3.1.0

8 months ago

3.0.1

8 months ago

3.0.0

8 months ago

2.0.0-beta.13

2 years ago

2.0.0-beta.12

2 years ago

2.0.0-beta.11

2 years ago

2.0.0-beta.10

2 years ago

2.0.0-beta.9

2 years ago

2.0.0-beta.8

3 years ago

2.0.0-beta.7

3 years ago

2.0.0-beta.6

3 years ago

2.0.0-beta.5

3 years ago

2.0.0-beta.4

3 years ago

2.0.0-beta.3

3 years ago

2.0.0-beta.2

3 years ago

2.0.0-beta.1

3 years ago

2.0.0-beta.0

3 years ago

1.4.3

4 years ago

1.4.2

4 years ago

2.0.0-alpha.1

4 years ago

2.0.0-alpha.0

4 years ago

1.4.1

4 years ago

1.4.0

4 years ago

1.3.0

4 years ago

1.2.3

4 years ago

1.2.0

4 years ago

1.2.2

4 years ago

1.2.1

4 years ago

1.1.2

4 years ago

1.1.1

4 years ago

1.1.0

4 years ago

1.0.0

4 years ago