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