3.1.2 • Published 7 months ago

@spec2ts/openapi v3.1.2

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

@spec2ts/openapi

NPM version NPM download Build Status

@spec2ts/openapi is an utility to create TypeScript types from OpenAPI v3 specification. Unlike other code generators @spec2ts/openapi 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 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

CLI Usage

oapi2ts [options] <input..>

Generate TypeScript types from OpenAPI specification

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

Options:
  --version     Show version number                                    [boolean]
  --help        Show help usage                                        [boolean]
  --output, -o  Output directory for generated types                    [string]
  --cwd, -c     Root directory for resolving $refs                      [string]
  --avoidAny    Avoid the `any` type and use `unknown` instead         [boolean]
  --enableDate  Build `Date` for format `date` and `date-time`         [boolean]
  --banner, -b  Comment prepended to the top of each generated file     [string]

Programmatic Usage

import { printer } from "@spec2ts/core";
import { parseOpenApiFile } from "@spec2ts/openapi";

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

Implementations

  • Types for parameters:
    • path
    • header
    • query
    • cookie
  • Types for requestBody
  • Types for responses
  • Automatic naming
    • From operationId
    • From path
  • Parameters merging
    • From path item
    • From operation
    • Override from operation
  • Schema references
    • Local (filesystem) schema references
    • External (network) schema references
  • Modular architecture
    • Import local references
    • Embed external references

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.8

2 years ago

2.0.0-beta.7

2 years ago

2.0.0-beta.6

2 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.2.4

4 years ago

1.2.3

4 years ago

2.0.0-alpha.1

4 years ago

2.0.0-alpha.0

4 years ago

1.2.2

4 years ago

1.2.1

4 years ago

1.2.0

4 years ago

1.1.3

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