Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/grantila/ts-to-openapi
Convert TypeScript types to OpenAPI schema components
https://github.com/grantila/ts-to-openapi
Last synced: 10 days ago
JSON representation
Convert TypeScript types to OpenAPI schema components
- Host: GitHub
- URL: https://github.com/grantila/ts-to-openapi
- Owner: grantila
- License: mit
- Created: 2020-01-21T16:37:47.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2024-04-20T06:07:36.000Z (7 months ago)
- Last Synced: 2024-10-19T10:24:06.034Z (22 days ago)
- Language: TypeScript
- Size: 19.5 KB
- Stars: 57
- Watchers: 3
- Forks: 5
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-list - ts-to-openapi
README
[![npm version][npm-image]][npm-url]
[![downloads][downloads-image]][npm-url]
[![build status][build-image]][build-url]
[![coverage status][coverage-image]][coverage-url]# ts-to-openapi
*This package is not heavily maintained, and will be replaced with [typeconv](https://github.com/grantila/typeconv/)*
This package converts TypeScript interfaces and types to OpenAPI/Swagger YAML.
It can detect what looks like GraphQL-to-TypeScript converted files, and clean them up (e.g. auto-expanding `Scalar` and `Maybe`).
The result is a set of schema components which can be referred to in OpenAPI/Swagger routes (or from other components).
# Example
The following converts types `MyTypeA` and `MyTypeB` in `my-file.ts` into OpenAPI YAML and writes to stdout:
```
$> ts-to-openapi -f my-file.ts -t MyTypeA,MyTypeB
```# Usage
```
Usage: ts-to-openapi [options]Convert TypeScript types and interfaces to OpenAPI YAML
Options:
-h, --help Print (this) help screen
-v, --version Print the program version
-f, --file .ts file to read
-c, --config Config file to use. Defaults to .ts-to-openapirc in the root of the project.
--tsconfig tsconfig.json file to use. Defaults to the first found in parent directories of PWD.
--(no-)sort-props Sort the properties in the types (default: true)
--(no-)as-comment Output OpenAPI YAML inside a source code comment /* ... */ (default: true)
--(no-)type-check Type-check the input file and fail on type errors (default: true)
--(no-)detect-graphql Auto-expand GraphQL types (e.g. Maybe, Scalar) and remove __typename (default: true)
--graphql-expanded-types Define which GraphQL types to expand (replaces the built-in list)
--graphql-remove-props Define which GraphQL properties to remove (replaces the built-in list)
--expand-types Additional types to expand rather than include as their own types
--remove-props Additional properties to remove from types
-t, --types The types to convert to OpenAPI
--json-format Leave output as JSON
--model-version Specify a semantic version for the model
```[npm-image]: https://img.shields.io/npm/v/ts-to-openapi.svg
[npm-url]: https://npmjs.org/package/ts-to-openapi
[downloads-image]: https://img.shields.io/npm/dm/ts-to-openapi.svg
[build-image]: https://img.shields.io/github/workflow/status/grantila/ts-to-openapi/Master.svg
[build-url]: https://github.com/grantila/ts-to-openapi/actions?query=workflow%3AMaster
[coverage-image]: https://coveralls.io/repos/github/grantila/ts-to-openapi/badge.svg?branch=master
[coverage-url]: https://coveralls.io/github/grantila/ts-to-openapi?branch=master