UNPKG

swaxios

Version:

Swagger API client generator based on axios and TypeScript.

58 lines 2.06 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.TemplateGenerator = void 0; const fs_extra_1 = __importDefault(require("fs-extra")); const handlebars_1 = __importDefault(require("handlebars")); const path_1 = __importDefault(require("path")); const prettier_1 = __importDefault(require("prettier")); class TemplateGenerator { handlebars; constructor() { this.handlebars = handlebars_1.default.create(); this.handlebars.registerHelper('eq', function (a, b, options) { if (a == b) { return options.fn(this); } return options.inverse(this); }); this.handlebars.registerHelper('isnt', function (a, b, options) { if (a != b) { return options.fn(this); } return options.inverse(this); }); } getTemplateFile() { return path_1.default.resolve(__dirname, '../templates', this.templateFile); } async renderTemplate() { const templateFile = this.getTemplateFile(); const context = await this.getContext(); if (templateFile && context) { const templateSource = await fs_extra_1.default.readFile(templateFile, 'utf8'); const template = this.handlebars.compile(templateSource); return template(context); } return ''; } async writeTemplate() { const renderedTemplate = await this.renderTemplate(); return prettier_1.default.format(renderedTemplate, { bracketSpacing: false, parser: 'typescript', singleQuote: true, trailingComma: 'es5', }); } get filePath() { return `${this.name}.ts`; } toString() { return this.writeTemplate(); } } exports.TemplateGenerator = TemplateGenerator; //# sourceMappingURL=TemplateGenerator.js.map