Sha256: bd872e5194b101c46ed5d3c9cf9792e920ed1a1e3df94a534a37a70484324001
Contents?: true
Size: 985 Bytes
Versions: 131
Compression:
Stored size: 985 Bytes
Contents
'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'); } };
Version data entries
131 entries across 77 versions & 13 rubygems