UNPKG

@alova/wormhole

Version:

More modern openAPI generating solution for alova.js

39 lines (38 loc) 1.36 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.schemaLoader = exports.SchemaLoader = void 0; const astLoader_1 = require("../astLoader"); const generates_1 = require("../astLoader/generates"); class SchemaLoader { constructor() { this.name = 'schemaLoader'; } async transform(schemaOrigin, options) { const ast = await astLoader_1.astLoader.transformSchema(schemaOrigin, { document: options.document, commentType: options.commentType ?? 'line', defaultRequire: options.defaultRequire, onReference(ast) { options.onReference?.(ast); }, }); const genOptions = { deep: options.deep, shallowDeep: options.shallowDeep, commentType: options.commentType ?? 'line', noEnum: options.noEnum, }; const result = await astLoader_1.astLoader.transform(ast, { ...genOptions, format: true, }); const tsStrArr = (0, generates_1.getValue)(result, { ...genOptions, }) .trim() .split('\n'); return tsStrArr.map((line, idx) => (idx ? options.preText : '') + line).join('\n'); } } exports.SchemaLoader = SchemaLoader; exports.schemaLoader = new SchemaLoader();