index.js
1.31 KB
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
'use strict';
module.exports = function (ajv, options) {
if (!ajv._opts.allErrors) throw new Error('ajv-errors: Ajv option allErrors must be true');
if (!ajv._opts.jsonPointers) {
console.warn('ajv-errors: Ajv option jsonPointers changed to true');
ajv._opts.jsonPointers = true;
}
ajv.addKeyword('errorMessage', {
inline: require('./lib/dotjs/errorMessage'),
statements: true,
valid: true,
errors: 'full',
config: {
KEYWORD_PROPERTY_PARAMS: {
required: 'missingProperty',
dependencies: 'property'
},
options: options || {}
},
metaSchema: {
'type': ['string', 'object'],
properties: {
properties: {$ref: '#/definitions/stringMap'},
items: {$ref: '#/definitions/stringList'},
required: {$ref: '#/definitions/stringOrMap'},
dependencies: {$ref: '#/definitions/stringOrMap'}
},
additionalProperties: {'type': 'string'},
definitions: {
stringMap: {
'type': ['object'],
additionalProperties: {'type': 'string'}
},
stringOrMap: {
'type': ['string', 'object'],
additionalProperties: {'type': 'string'}
},
stringList: {
'type': ['array'],
items: {'type': 'string'}
}
}
}
});
return ajv;
};