Projekt

Obecné

Profil

Stáhnout (531 Bajtů) Statistiky
| Větev: | Revize:
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 true;
8
      if (schema.length == 1) return {required: schema};
9
      var schemas = schema.map(function (prop) {
10
        return {required: [prop]};
11
      });
12
      return {oneOf: schemas};
13
    },
14
    metaSchema: {
15
      type: 'array',
16
      items: {
17
        type: 'string'
18
      }
19
    }
20
  };
21

    
22
  ajv.addKeyword('oneRequired', defFunc.definition);
23
  return ajv;
24
};
(12-12/21)