1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
| 'use strict';
|
| var KEYWORDS = [
| 'multipleOf',
| 'maximum',
| 'exclusiveMaximum',
| 'minimum',
| 'exclusiveMinimum',
| 'maxLength',
| 'minLength',
| 'pattern',
| 'additionalItems',
| 'maxItems',
| 'minItems',
| 'uniqueItems',
| 'maxProperties',
| 'minProperties',
| 'required',
| 'additionalProperties',
| 'enum',
| 'format',
| 'const'
| ];
|
| module.exports = function (metaSchema, keywordsJsonPointers) {
| for (var i=0; i<keywordsJsonPointers.length; i++) {
| metaSchema = JSON.parse(JSON.stringify(metaSchema));
| var segments = keywordsJsonPointers[i].split('/');
| var keywords = metaSchema;
| var j;
| for (j=1; j<segments.length; j++)
| keywords = keywords[segments[j]];
|
| for (j=0; j<KEYWORDS.length; j++) {
| var key = KEYWORDS[j];
| var schema = keywords[key];
| if (schema) {
| keywords[key] = {
| anyOf: [
| schema,
| { $ref: 'https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#' }
| ]
| };
| }
| }
| }
|
| return metaSchema;
| };
|
|