UNPKG

ajv-json-logic

Version:
1 lines 2.1 kB
{"version":3,"file":"conditionalSchema.cjs","sources":["../../src/definitions/conditionalSchema.ts"],"sourcesContent":["import type { AnySchema, AnySchemaObject, MacroKeywordDefinition } from 'ajv';\r\nimport conditionalSchemaMetaSchema from '../schemas/conditional-schema.json';\r\n\r\nexport default function getDef(): MacroKeywordDefinition {\r\n return {\r\n keyword: 'conditionalSchema',\r\n macro: function (schema: any): AnySchema {\r\n if (!schema) {\r\n return {};\r\n }\r\n const allOf: Array<{ if: { jsonLogic: any }; then: AnySchemaObject }> = [];\r\n if (!Array.isArray(schema)) schema = [schema];\r\n\r\n if (schema && Array.isArray(schema)) {\r\n schema.forEach(({ rule, schema: childSchema }: { rule: any; schema: AnySchemaObject }) => {\r\n allOf.push({\r\n if: { jsonLogic: rule },\r\n then: childSchema,\r\n });\r\n });\r\n return { allOf };\r\n }\r\n return {};\r\n },\r\n metaSchema: conditionalSchemaMetaSchema,\r\n };\r\n}\r\n\r\n// For CommonJS compatibility\r\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n module.exports = getDef;\r\n module.exports.default = getDef;\r\n}\r\n"],"names":["conditionalSchemaMetaSchema"],"mappings":";;;;;;AAGc,SAAU,MAAM,GAAA;IAC5B,OAAO;AACL,QAAA,OAAO,EAAE,mBAAmB;QAC5B,KAAK,EAAE,UAAU,MAAW,EAAA;YAC1B,IAAI,CAAC,MAAM,EAAE;AACX,gBAAA,OAAO,EAAE;;YAEX,MAAM,KAAK,GAA6D,EAAE;AAC1E,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;AACnC,gBAAA,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAA0C,KAAI;oBACvF,KAAK,CAAC,IAAI,CAAC;AACT,wBAAA,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;AACvB,wBAAA,IAAI,EAAE,WAAW;AAClB,qBAAA,CAAC;AACJ,iBAAC,CAAC;gBACF,OAAO,EAAE,KAAK,EAAE;;AAElB,YAAA,OAAO,EAAE;SACV;AACD,QAAA,UAAU,EAAEA,yBAA2B;KACxC;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;;;;"}