| 123456789101112131415161718192021222324252627282930313233343536 | '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');  }};
 |