You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
'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'); } };
|