diff options
Diffstat (limited to 'deps/npm/node_modules/ajv/lib/$data.js')
-rw-r--r-- | deps/npm/node_modules/ajv/lib/$data.js | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/deps/npm/node_modules/ajv/lib/$data.js b/deps/npm/node_modules/ajv/lib/$data.js new file mode 100644 index 00000000000..60cfc2d8dee --- /dev/null +++ b/deps/npm/node_modules/ajv/lib/$data.js @@ -0,0 +1,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/epoberezkin/ajv/master/lib/refs/$data.json#' } + ] + }; + } + } + } + + return metaSchema; +}; |