orionsoft-react-scripts
Version:
Orionsoft Configuration and scripts for Create React App.
41 lines (33 loc) • 935 B
JavaScript
module.exports = defFunc;
var definition = defFunc.definition = {
type: 'number',
macro: function (schema, parentSchema) {
var min = schema[0]
, max = schema[1]
, exclusive = parentSchema.exclusiveRange;
validateRangeSchema(min, max, exclusive);
return {
minimum: min,
exclusiveMinimum: exclusive,
maximum: max,
exclusiveMaximum: exclusive
};
},
metaSchema: {
type: 'array',
minItems: 2,
maxItems: 2,
items: { type: 'number' }
}
};
function defFunc(ajv) {
ajv.addKeyword('range', definition);
ajv.addKeyword('exclusiveRange');
}
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');
}
;