diff options
| author | littleblack111 <littleblack11111@gmail.com> | 2023-11-05 17:16:09 +0800 |
|---|---|---|
| committer | littleblack111 <littleblack11111@gmail.com> | 2023-11-05 17:16:09 +0800 |
| commit | d1d9f00b1bd660842addf5e6b1d1b64c852a9eea (patch) | |
| tree | 60fb37ae73a1109d95301de5ec9b61b5726a4b61 /node_modules/ajv-keywords/keywords/range.js | |
| parent | 7c85166c4cbdd862fc4252007d2df5befcbc2a58 (diff) | |
added hover prefixer
Diffstat (limited to 'node_modules/ajv-keywords/keywords/range.js')
| -rw-r--r-- | node_modules/ajv-keywords/keywords/range.js | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/node_modules/ajv-keywords/keywords/range.js b/node_modules/ajv-keywords/keywords/range.js new file mode 100644 index 00000000..9c1fd3ff --- /dev/null +++ b/node_modules/ajv-keywords/keywords/range.js @@ -0,0 +1,36 @@ +'use strict'; + +module.exports = function defFunc(ajv) { + defFunc.definition = { + type: 'number', + macro: function (schema, parentSchema) { + var min = schema[0] + , max = schema[1] + , exclusive = parentSchema.exclusiveRange; + + validateRangeSchema(min, max, exclusive); + + return exclusive === true + ? {exclusiveMinimum: min, exclusiveMaximum: max} + : {minimum: min, maximum: max}; + }, + metaSchema: { + type: 'array', + minItems: 2, + maxItems: 2, + items: { type: 'number' } + } + }; + + ajv.addKeyword('range', defFunc.definition); + ajv.addKeyword('exclusiveRange'); + return ajv; + + function validateRangeSchema(min, max, exclusive) { + if (exclusive !== undefined && typeof exclusive != 'boolean') + throw new Error('Invalid schema for exclusiveRange keyword, should be boolean'); + + if (min > max || (exclusive && min == max)) + throw new Error('There are no numbers in range'); + } +}; |
