UNPKG

api

Version:

Magical SDK generation from an OpenAPI definition 🪄

32 lines (25 loc) • 896 B
import type CodeGeneratorLanguage from './language'; import type Oas from 'oas'; import TSGenerator from './languages/typescript'; export type SupportedLanguages = 'js' | 'js-cjs' | 'js-esm' | 'ts'; export default function codegen( language: SupportedLanguages, spec: Oas, specPath: string, identifier: string, ): CodeGeneratorLanguage { switch (language) { case 'js': throw new TypeError('An export format of CommonJS or ECMAScript is required for JavaScript compilation.'); case 'js-cjs': case 'js-esm': case 'ts': return new TSGenerator(spec, specPath, identifier, { outputJS: ['js-cjs', 'js-esm'].includes(language), // TS will always generate with ESM-like exports. compilerTarget: language === 'js-cjs' ? 'cjs' : 'esm', }); default: throw new TypeError(`Unsupported language supplied: ${language}`); } }