ajv-json-logic
Version:
JSON Logic integration for Ajv validator
1 lines • 2.19 kB
Source Map (JSON)
{"version":3,"file":"conditionalRequired.cjs","sources":["../../src/definitions/conditionalRequired.ts"],"sourcesContent":["import type { AnySchema, AnySchemaObject, MacroKeywordDefinition } from 'ajv';\nimport conditionalRequiredSchema from '../schemas/conditional-required.json';\n\nexport default function getDef(): MacroKeywordDefinition {\n return {\n keyword: 'conditionalRequired',\n macro: function (schema: any, parentSchema: AnySchemaObject): AnySchema {\n if (!schema) {\n return {};\n }\n const allOf: Array<{ if: { jsonLogic: any }; then: { required: string[] } }> = [];\n if (!Array.isArray(schema)) schema = [schema];\n\n if (schema && Array.isArray(schema)) {\n schema.forEach(({ content, rule }: any) => {\n if (content in parentSchema['properties']) {\n allOf.push({\n if: { jsonLogic: rule },\n then: { required: [content] },\n });\n }\n });\n return { allOf };\n }\n return {};\n },\n metaSchema: conditionalRequiredSchema,\n };\n}\n\n// For CommonJS compatibility\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n module.exports = getDef;\n module.exports.default = getDef;\n}\n"],"names":["conditionalRequiredSchema"],"mappings":";;;;;;AAGc,SAAU,MAAM,GAAA;IAC5B,OAAO;AACL,QAAA,OAAO,EAAE,qBAAqB;AAC9B,QAAA,KAAK,EAAE,UAAU,MAAW,EAAE,YAA6B,EAAA;YACzD,IAAI,CAAC,MAAM,EAAE;AACX,gBAAA,OAAO,EAAE;;YAEX,MAAM,KAAK,GAAoE,EAAE;AACjF,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;AAAE,gBAAA,MAAM,GAAG,CAAC,MAAM,CAAC;YAE7C,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBACnC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAO,KAAI;AACxC,oBAAA,IAAI,OAAO,IAAI,YAAY,CAAC,YAAY,CAAC,EAAE;wBACzC,KAAK,CAAC,IAAI,CAAC;AACT,4BAAA,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;AACvB,4BAAA,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE;AAC9B,yBAAA,CAAC;;AAEN,iBAAC,CAAC;gBACF,OAAO,EAAE,KAAK,EAAE;;AAElB,YAAA,OAAO,EAAE;SACV;AACD,QAAA,UAAU,EAAEA,2BAAyB;KACtC;AACH;AAEA;AACA,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,WAAW,EAAE;AAC1E,IAAA,MAAM,CAAC,OAAO,GAAG,MAAM;AACvB,IAAA,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,MAAM;AACjC;;;;"}