@alova/wormhole
Version:
More modern openAPI generating solution for alova.js
68 lines (67 loc) • 1.95 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.simpleTypeGenerator = simpleTypeGenerator;
const type_1 = require("../../../../type");
const utils_1 = require("./utils");
function simpleTypeGenerator(ast, ctx) {
const result = {
name: ast.keyName ?? '',
comment: (0, utils_1.setComment)(ast, ctx.options),
type: 'type',
code: '',
};
switch (ast.type) {
case type_1.ASTType.BOOLEAN:
result.code = 'boolean';
break;
case type_1.ASTType.NUMBER:
result.code = 'number';
break;
case type_1.ASTType.STRING:
result.code = 'string';
break;
case type_1.ASTType.OBJECT:
result.code = 'object';
break;
case type_1.ASTType.ANY:
result.code = 'any';
break;
case type_1.ASTType.NULL:
result.code = 'null';
break;
case type_1.ASTType.UNKNOWN:
result.code = 'unknown';
break;
case type_1.ASTType.NEVER:
result.code = 'never';
break;
case type_1.ASTType.LITERAL:
result.code = JSON.stringify(ast.params);
break;
case type_1.ASTType.REFERENCE: // reference
result.code = ast.params;
break;
case type_1.ASTType.CUSTOM:
result.code = ast.params;
break;
default:
break;
}
return result;
}
exports.default = {
type: [
type_1.ASTType.BOOLEAN,
type_1.ASTType.NUMBER,
type_1.ASTType.STRING,
type_1.ASTType.OBJECT,
type_1.ASTType.ANY,
type_1.ASTType.NULL,
type_1.ASTType.UNKNOWN,
type_1.ASTType.NEVER,
type_1.ASTType.REFERENCE,
type_1.ASTType.LITERAL,
type_1.ASTType.CUSTOM,
],
generate: simpleTypeGenerator,
};