1 | 'use strict';
|
2 |
|
3 | module.exports = function defFunc(ajv) {
|
4 | defFunc.definition = {
|
5 | type: 'object',
|
6 | macro: function (schema) {
|
7 | if (schema.length == 0) return {};
|
8 | if (schema.length == 1) return { not: { required: schema } };
|
9 | var schemas = schema.map(function (prop) {
|
10 | return { required: [prop] };
|
11 | });
|
12 | return { not: { anyOf: schemas } };
|
13 | },
|
14 | metaSchema: {
|
15 | type: 'array',
|
16 | items: {
|
17 | type: 'string'
|
18 | }
|
19 | }
|
20 | };
|
21 |
|
22 | ajv.addKeyword('prohibited', defFunc.definition);
|
23 | return ajv;
|
24 | };
|
25 |
|