UNPKG

@openapi-generator-plus/typescript-fetch-node-client-generator

Version:
43 lines (39 loc) 1.54 kB
import { CodegenGeneratorConstructor, CodegenGeneratorType, CodegenSchemaType } from '@openapi-generator-plus/types' import path from 'path' import { loadTemplates } from '@openapi-generator-plus/handlebars-templates' import typescriptGenerator from '@openapi-generator-plus/typescript-fetch-client-generator' import { TypeScriptGeneratorContext, chainTypeScriptGeneratorContext } from '@openapi-generator-plus/typescript-generator-common' const createGenerator: CodegenGeneratorConstructor = (config, context) => { const myContext: TypeScriptGeneratorContext = chainTypeScriptGeneratorContext(context, { loadAdditionalTemplates: async(hbs) => { await loadTemplates(path.resolve(__dirname, '../templates'), hbs) }, additionalWatchPaths: () => { return [path.resolve(__dirname, '../templates')] }, defaultTypeScriptOptions: () => ({ target: 'ES5', libs: ['$target', 'DOM', 'ES2021.String'], }), }) const base = typescriptGenerator(config, myContext) return { ...base, templateRootContext: () => { return { ...base.templateRootContext(), generatorClass: '@openapi-generator-plus/typescript-fetch-node-client-generator', } }, generatorType: () => CodegenGeneratorType.CLIENT, toNativeType: function(options) { const { schemaType } = options if (schemaType === CodegenSchemaType.BINARY || schemaType === CodegenSchemaType.FILE) { return new context.NativeType('string | Buffer') } else { return base.toNativeType(options) } }, } } export default createGenerator