UNPKG

@kubb/plugin-oas

Version:
114 lines (109 loc) 3.68 kB
'use strict'; var transformers = require('@kubb/core/transformers'); var utils = require('@kubb/core/utils'); var oas = require('@kubb/oas'); var path = require('path'); var yaml = require('@stoplight/yaml'); var core = require('@kubb/core'); var remeda = require('remeda'); function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; } var transformers__default = /*#__PURE__*/_interopDefault(transformers); var yaml__default = /*#__PURE__*/_interopDefault(yaml); // src/utils/getComments.ts function getComments(operation) { return [ operation.getDescription() && `@description ${operation.getDescription()}`, operation.getSummary() && `@summary ${operation.getSummary()}`, operation.path && `{@link ${new utils.URLPath(operation.path).URL}}`, operation.isDeprecated() && "@deprecated" ].filter(Boolean).map((text) => transformers__default.default.trim(text)); } function getASTParams(operationSchema, { typed = false, override } = {}) { if (!operationSchema || !operationSchema.schema.properties || !operationSchema.name) { return []; } return Object.entries(operationSchema.schema.properties).map(([name, schema]) => { const isParam = oas.isParameterObject(schema); const data = { name, enabled: !!name, required: isParam ? schema.required : true, type: typed ? `${operationSchema.name}["${name}"]` : void 0 }; return override ? override(data) : data; }); } function getPathParams(operationSchema, options = {}) { return getASTParams(operationSchema, options).reduce((acc, curr) => { if (curr.name && curr.enabled) { let name = transformers.isValidVarName(curr.name) ? curr.name : transformers.camelCase(curr.name); if (options.casing === "camelcase") { name = transformers.camelCase(name); } acc[name] = { default: curr.default, type: curr.type, optional: !curr.required }; } return acc; }, {}); } function parseFromConfig(config, oasClass = oas.Oas) { if ("data" in config.input) { if (typeof config.input.data === "object") { const api2 = JSON.parse(JSON.stringify(config.input.data)); return oas.parse(api2, oasClass); } try { const api2 = yaml__default.default.parse(config.input.data); return oas.parse(api2, oasClass); } catch (e) { } const api = JSON.parse(JSON.stringify(config.input.data)); return oas.parse(api, oasClass); } if (new utils.URLPath(config.input.path).isURL) { return oas.parse(config.input.path, oasClass); } return oas.parse(path.resolve(config.root, config.input.path), oasClass); } function getBanner({ output, oas, config }) { let banner = ""; if (config?.output?.defaultBanner !== false && config) { const { title, description, version } = oas.api?.info || {}; banner = core.getDefaultBanner({ title, description, version, config }); } if (!output.banner) { return banner; } if (remeda.isFunction(output.banner)) { return `${output.banner(oas)} ${banner}`; } return `${output.banner} ${banner}`; } function getFooter({ output, oas }) { if (!output.footer) { return void 0; } if (remeda.isFunction(output.footer)) { return output.footer(oas); } return output.footer; } Object.defineProperty(exports, "isOptional", { enumerable: true, get: function () { return oas.isOptional; } }); exports.getBanner = getBanner; exports.getComments = getComments; exports.getFooter = getFooter; exports.getPathParams = getPathParams; exports.parseFromConfig = parseFromConfig; //# sourceMappingURL=chunk-DEDONPUL.cjs.map //# sourceMappingURL=chunk-DEDONPUL.cjs.map