@openapi-generator-plus/typescript-fetch-node-client-generator
Version:
An OpenAPI Generator Plus template for a TypeScript API client using Fetch in Node
38 lines (37 loc) • 2.05 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const types_1 = require("@openapi-generator-plus/types");
const path_1 = __importDefault(require("path"));
const handlebars_templates_1 = require("@openapi-generator-plus/handlebars-templates");
const typescript_fetch_client_generator_1 = __importDefault(require("@openapi-generator-plus/typescript-fetch-client-generator"));
const typescript_generator_common_1 = require("@openapi-generator-plus/typescript-generator-common");
const createGenerator = (config, context) => {
const myContext = (0, typescript_generator_common_1.chainTypeScriptGeneratorContext)(context, {
loadAdditionalTemplates: async (hbs) => {
await (0, handlebars_templates_1.loadTemplates)(path_1.default.resolve(__dirname, '../templates'), hbs);
},
additionalWatchPaths: () => {
return [path_1.default.resolve(__dirname, '../templates')];
},
defaultTypeScriptOptions: () => ({
target: 'ES5',
libs: ['$target', 'DOM', 'ES2021.String'],
}),
});
const base = (0, typescript_fetch_client_generator_1.default)(config, myContext);
return Object.assign(Object.assign({}, base), { templateRootContext: () => {
return Object.assign(Object.assign({}, base.templateRootContext()), { generatorClass: '@openapi-generator-plus/typescript-fetch-node-client-generator' });
}, generatorType: () => types_1.CodegenGeneratorType.CLIENT, toNativeType: function (options) {
const { schemaType } = options;
if (schemaType === types_1.CodegenSchemaType.BINARY || schemaType === types_1.CodegenSchemaType.FILE) {
return new context.NativeType('string | Buffer');
}
else {
return base.toNativeType(options);
}
} });
};
exports.default = createGenerator;