ut-tools
Version:
Build and Release management automation package.
33 lines • 1.22 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const spectral_core_1 = require("@stoplight/spectral-core");
const isObject_1 = require("./utils/isObject");
exports.default = (0, spectral_core_1.createRulesetFunction)({
input: {
type: 'object',
properties: {
discriminator: {
type: 'string',
},
},
required: ['discriminator'],
},
options: null,
}, function oasDiscriminator(schema, _opts, { path }) {
const discriminatorName = schema.discriminator;
const results = [];
if (!(0, isObject_1.isObject)(schema.properties) || !Object.keys(schema.properties).some(k => k === discriminatorName)) {
results.push({
message: `The discriminator property must be defined in this schema.`,
path: [...path, 'properties'],
});
}
if (!Array.isArray(schema.required) || !schema.required.some(n => n === discriminatorName)) {
results.push({
message: `The discriminator property must be in the required property list.`,
path: [...path, 'required'],
});
}
return results;
});
//# sourceMappingURL=oasDiscriminator.js.map