@kubb/plugin-oas
Version:
OpenAPI Specification (OAS) plugin for Kubb, providing core functionality for parsing and processing OpenAPI/Swagger schemas for code generation.
67 lines (64 loc) • 2.49 kB
JavaScript
const require_chunk = require('./chunk-CbDLau6x.cjs');
const require_getFooter = require('./getFooter-BWck5e2D.cjs');
const require_getSchemas = require('./getSchemas-BTCpbjet.cjs');
let __kubb_core_transformers = require("@kubb/core/transformers");
__kubb_core_transformers = require_chunk.__toESM(__kubb_core_transformers);
let __kubb_oas = require("@kubb/oas");
let __kubb_core_utils = require("@kubb/core/utils");
//#region src/utils/getComments.ts
function getComments(operation) {
return [
operation.getDescription() && `@description ${operation.getDescription()}`,
operation.getSummary() && `@summary ${operation.getSummary()}`,
operation.path && `{@link ${new __kubb_core_utils.URLPath(operation.path).URL}}`,
operation.isDeprecated() && "@deprecated"
].filter(Boolean).map((text) => __kubb_core_transformers.default.trim(text)).filter(Boolean);
}
//#endregion
//#region src/utils/getParams.ts
/**
*
* @deprecated
* TODO move to operationManager hook
*/
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 = (0, __kubb_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 = (0, __kubb_core_transformers.isValidVarName)(curr.name) ? curr.name : (0, __kubb_core_transformers.camelCase)(curr.name);
if (options.casing === "camelcase") name = (0, __kubb_core_transformers.camelCase)(name);
acc[name] = {
default: curr.default,
type: curr.type,
optional: !curr.required
};
}
return acc;
}, {});
}
//#endregion
exports.getBanner = require_getFooter.getBanner;
exports.getComments = getComments;
exports.getFooter = require_getFooter.getFooter;
exports.getPathParams = getPathParams;
exports.getSchemaFactory = require_getSchemas.getSchemaFactory;
exports.getSchemas = require_getSchemas.getSchemas;
Object.defineProperty(exports, 'isOptional', {
enumerable: true,
get: function () {
return __kubb_oas.isOptional;
}
});
//# sourceMappingURL=utils.cjs.map