'use strict'; module.exports = function defFunc(ajv) { defFunc.definition = { type: 'object', macro: function (schema) { if (schema.length == 0) return {}; if (schema.length == 1) return { not: { required: schema } }; var schemas = schema.map(function (prop) { return { required: [prop] }; }); return { not: { anyOf: schemas } }; }, metaSchema: { type: 'array', items: { type: 'string' } } }; ajv.addKeyword('prohibited', defFunc.definition); return ajv; };