@alova/wormhole
Version:
More modern openAPI generating solution for alova.js
39 lines (38 loc) • 1.36 kB
JavaScript
;
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();