Projekt

Obecné

Profil

Stáhnout (1.02 KB) Statistiky
| Větev: | Revize:
1
'use strict';
2

    
3
var KEYWORDS = [
4
  'multipleOf',
5
  'maximum',
6
  'exclusiveMaximum',
7
  'minimum',
8
  'exclusiveMinimum',
9
  'maxLength',
10
  'minLength',
11
  'pattern',
12
  'additionalItems',
13
  'maxItems',
14
  'minItems',
15
  'uniqueItems',
16
  'maxProperties',
17
  'minProperties',
18
  'required',
19
  'additionalProperties',
20
  'enum',
21
  'format',
22
  'const'
23
];
24

    
25
module.exports = function (metaSchema, keywordsJsonPointers) {
26
  for (var i=0; i<keywordsJsonPointers.length; i++) {
27
    metaSchema = JSON.parse(JSON.stringify(metaSchema));
28
    var segments = keywordsJsonPointers[i].split('/');
29
    var keywords = metaSchema;
30
    var j;
31
    for (j=1; j<segments.length; j++)
32
      keywords = keywords[segments[j]];
33

    
34
    for (j=0; j<KEYWORDS.length; j++) {
35
      var key = KEYWORDS[j];
36
      var schema = keywords[key];
37
      if (schema) {
38
        keywords[key] = {
39
          anyOf: [
40
            schema,
41
            { $ref: 'https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/data.json#' }
42
          ]
43
        };
44
      }
45
    }
46
  }
47

    
48
  return metaSchema;
49
};
(4-4/6)