/ student-intifada / node_modules / openapi-typescript /

[ICO]NameLast modifiedSizeDescription
[PARENTDIR]Parent Directory  -  
[DIR]src/10 months ago -  
[DIR]node_modules/10 months ago -  
[DIR]dist/10 months ago -  
[DIR]bin/10 months ago -  
[   ]tsconfig.json10 months ago236 595aea1 more query options + view options [كارل مبارك]
[   ]tsconfig.build.json10 months ago160  
[   ]package.json10 months ago2.2Kafd0ccc remove unused [كارل مبارك]
[TXT]README.md10 months ago3.3K595aea1 more query options + view options [كارل مبارك]
[   ]LICENSE10 months ago1.0K 
[TXT]CONTRIBUTING.md10 months ago6.9K 
[TXT]CHANGELOG.md10 months ago 32K 
README.md
openapi-typescript

openapi-typescript generates TypeScript types from static OpenAPI schemas quickly using only Node.js. It is fast, lightweight, (almost) dependency-free, and no Java/node-gyp/running OpenAPI servers necessary.

The code is MIT-licensed and free for use.

Features

Examples

👀 See examples

Setup

This library requires the latest version of Node.js installed (20.x or higher recommended). With that present, run the following in your project:

npm i -D openapi-typescript

Tip

Enabling noUncheckedIndexedAccess in tsconfig.json can go along way to improve type safety (read more)

Basic usage

First, generate a local type file by running npx openapi-typescript:

# Local schema
npx openapi-typescript ./path/to/my/schema.yaml -o ./path/to/my/schema.d.ts
# 🚀 ./path/to/my/schema.yaml -> ./path/to/my/schema.d.ts [7ms]
# Remote schema
npx openapi-typescript https://myapi.dev/api/v1/openapi.yaml -o ./path/to/my/schema.d.ts
# 🚀 https://myapi.dev/api/v1/openapi.yaml -> ./path/to/my/schema.d.ts [250ms]

⚠️ Be sure to validate your schemas! openapi-typescript will err on invalid schemas.

Then, import schemas from the generated file like so:

import { paths, components } from "./path/to/my/schema"; // <- generated by openapi-typescript

// Schema Obj
type MyType = components["schemas"]["MyType"];

// Path params
type EndpointParams = paths["/my/endpoint"]["parameters"];

// Response obj
type SuccessResponse = paths["/my/endpoint"]["get"]["responses"][200]["content"]["application/json"]["schema"];
type ErrorResponse = paths["/my/endpoint"]["get"]["responses"][500]["content"]["application/json"]["schema"];

🦠 Globbing local schemas

npx openapi-typescript "specs/**/*.yaml" --output schemas/

# 🚀 specs/one.yaml -> schemas/specs/one.ts [7ms]
# 🚀 specs/two.yaml -> schemas/specs/two.ts [7ms]
# 🚀 specs/three.yaml -> schemas/specs/three.ts [7ms]

Thanks, @sharmarajdaksh!

☁️ Remote schemas

npx openapi-typescript https://petstore3.swagger.io/api/v3/openapi.yaml --output petstore.d.ts

# 🚀 https://petstore3.swagger.io/api/v3/openapi.yaml -> petstore.d.ts [250ms]

Thanks, @psmyrdek!

📓 Docs

View Docs

Apache/2.4.38 (Debian) Server at www.karls.computer Port 80