@devup-api/generator
v0.1.27
Published
TypeScript interface generator from OpenAPI schemas.
Readme
@devup-api/generator
TypeScript interface generator from OpenAPI schemas.
Installation
npm install @devup-api/generatorExports
generateInterface(schema: OpenAPIV3_1.Document, options?: DevupApiTypeGeneratorOptions): string- Generate TypeScript interface definitions from OpenAPI schemacreateUrlMap(schema: OpenAPIV3_1.Document, options?: DevupApiTypeGeneratorOptions): Record<string, UrlMapValue>- Create URL map from OpenAPI schema
Usage
Generate TypeScript Interfaces
import { generateInterface } from '@devup-api/generator'
import { readOpenapiAsync } from '@devup-api/utils'
const schema = await readOpenapiAsync('openapi.json')
const interfaceCode = generateInterface(schema, {
convertCase: 'camel',
responseDefaultNonNullable: true
})
// Write to file
await writeFile('api.d.ts', interfaceCode)Create URL Map
import { createUrlMap } from '@devup-api/generator'
import { readOpenapiAsync } from '@devup-api/utils'
const schema = await readOpenapiAsync('openapi.json')
const urlMap = createUrlMap(schema, {
convertCase: 'camel'
})
// urlMap will contain entries like:
// {
// 'getUsers': { method: 'GET', url: '/users' },
// '/users': { method: 'GET', url: '/users' }
// }Options
interface DevupApiTypeGeneratorOptions {
convertCase?: 'snake' | 'camel' | 'pascal' | 'maintain'
requestDefaultNonNullable?: boolean
responseDefaultNonNullable?: boolean
}License
Apache 2.0
