@redocly/openapi-core
Version:
See https://github.com/Redocly/redocly-cli
30 lines (29 loc) • 1.22 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ArrayParameterSerialization = void 0;
const ref_utils_1 = require("../../ref-utils");
const ArrayParameterSerialization = (options) => {
return {
Parameter: {
leave(node, ctx) {
if (!node.schema) {
return;
}
const schema = ((0, ref_utils_1.isRef)(node.schema) ? ctx.resolve(node.schema).node : node.schema);
if (schema &&
shouldReportMissingStyleAndExplode(node, schema, options)) {
ctx.report({
message: `Parameter \`${node.name}\` should have \`style\` and \`explode \` fields`,
location: ctx.location,
});
}
},
},
};
};
exports.ArrayParameterSerialization = ArrayParameterSerialization;
function shouldReportMissingStyleAndExplode(node, schema, options) {
return ((schema.type === 'array' || schema.items || schema.prefixItems) &&
(node.style === undefined || node.explode === undefined) &&
(!options.in || (node.in && options.in?.includes(node.in))));
}