UNPKG

@alova/wormhole

Version:

More modern openAPI generating solution for alova.js

45 lines (44 loc) 1.38 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.objectTypeParser = objectTypeParser; const type_1 = require("../../../../type"); const utils_1 = require("./utils"); function objectTypeParser(schema, ctx) { const result = { ...(0, utils_1.initAST)(schema, ctx), type: type_1.ASTType.INTERFACE, params: [], }; const properties = schema.properties || {}; const required = new Set(schema.required ?? []); for (const [key, value] of Object.entries(properties)) { ctx.pathKey = key; result.params.push({ ast: ctx.next(value, ctx.options), keyName: key, isRequired: required.has(key) || !!ctx.options.defaultRequire, }); } if (!result.params.length && !schema.additionalProperties) { return { ...result, type: type_1.ASTType.OBJECT, }; } if (schema.additionalProperties) { if (typeof schema.additionalProperties === 'boolean') { result.addParams = { type: type_1.ASTType.ANY, }; } else { ctx.pathKey = '[key: string]'; result.addParams = ctx.next(schema.additionalProperties, ctx.options); } } return result; } exports.default = { type: 'object', parse: objectTypeParser, };