1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| '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 {anyOf: schemas};
| },
| metaSchema: {
| type: 'array',
| items: {
| type: 'string'
| }
| }
| };
|
| ajv.addKeyword('anyRequired', defFunc.definition);
| return ajv;
| };
|
|