@redocly/openapi-core
Version:
See https://github.com/Redocly/redocly-cli
21 lines • 1.08 kB
JavaScript
import { buildSubjectVisitor, buildVisitorObject } from './utils.js';
import { isString } from '../../../utils/is-string.js';
export const Assertions = (opts) => {
const visitors = [];
// As 'Assertions' has an array of asserts,
// that array spreads into an 'opts' object on init rules phase here
// https://github.com/Redocly/redocly-cli/blob/main/packages/core/src/config/config.ts#L311
// that is why we need to iterate through 'opts' values;
// before - filter only object 'opts' values
const assertions = Object.values(opts).filter((opt) => typeof opt === 'object' && opt !== null);
for (const [_, assertion] of assertions.entries()) {
if (!isString(assertion.subject.type)) {
throw new Error(`${assertion.assertionId}: 'type' (String) is required`);
}
const subjectVisitor = buildSubjectVisitor(assertion.assertionId, assertion);
const visitorObject = buildVisitorObject(assertion, subjectVisitor);
visitors.push(visitorObject);
}
return visitors;
};
//# sourceMappingURL=index.js.map