ajv-json-logic
Version:
JSON Logic integration for Ajv validator
37 lines (34 loc) • 1.16 kB
JavaScript
import conditionalRequiredSchema from '../schemas/conditional-required.json.js';
function getDef() {
return {
keyword: 'conditionalRequired',
macro: function (schema, parentSchema) {
if (!schema) {
return {};
}
const allOf = [];
if (!Array.isArray(schema))
schema = [schema];
if (schema && Array.isArray(schema)) {
schema.forEach(({ content, rule }) => {
if (content in parentSchema['properties']) {
allOf.push({
if: { jsonLogic: rule },
then: { required: [content] },
});
}
});
return { allOf };
}
return {};
},
metaSchema: conditionalRequiredSchema,
};
}
// For CommonJS compatibility
if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
module.exports = getDef;
module.exports.default = getDef;
}
export { getDef as default };
//# sourceMappingURL=conditionalRequired.js.map