UNPKG

@alova/wormhole

Version:

More modern openAPI generating solution for alova.js

39 lines (38 loc) 1.29 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.enumTypeParser = enumTypeParser; const standardLoader_1 = require("../../../../core/loader/standardLoader"); const helper_1 = require("../../../../helper"); const type_1 = require("../../../../type"); const utils_1 = require("../../../../utils"); const utils_2 = require("./utils"); function enumTypeParser(schema, ctx) { const result = { ...(0, utils_2.initAST)(schema, ctx), type: type_1.ASTType.ENUM, params: [], }; const enumArray = schema.enum ?? []; const typeArray = [schema.type ?? []].flat(); if (enumArray.some(item => !typeArray.includes((0, utils_1.getType)(item)))) { throw helper_1.logger.throwError(`enum ${schema.title} type error`, { enum: enumArray, type: typeArray, }); } enumArray.forEach((item) => { const keyName = typeof item === 'string' && standardLoader_1.standardLoader.validate(item) ? item.toUpperCase() : ''; result.params.push({ keyName, ast: { type: type_1.ASTType.LITERAL, params: item, }, }); }); return result; } exports.default = { type: 'enum', parse: enumTypeParser, };