MOON
Server: Apache
System: Linux nserver.cafsindia.com 4.18.0-553.104.1.lve.el8.x86_64 #1 SMP Tue Feb 10 20:07:30 UTC 2026 x86_64
User: cafsindia (1002)
PHP: 8.2.30
Disabled: NONE
Upload Files
File: /home/cafsindia/snap.cafsinfotech.in/node_modules/ajv-keywords/src/definitions/_range.ts
import type {MacroKeywordDefinition} from "ajv"
import type {GetDefinition} from "./_types"

type RangeKwd = "range" | "exclusiveRange"

export default function getRangeDef(keyword: RangeKwd): GetDefinition<MacroKeywordDefinition> {
  return () => ({
    keyword,
    type: "number",
    schemaType: "array",
    macro: function ([min, max]: [number, number]) {
      validateRangeSchema(min, max)
      return keyword === "range"
        ? {minimum: min, maximum: max}
        : {exclusiveMinimum: min, exclusiveMaximum: max}
    },
    metaSchema: {
      type: "array",
      minItems: 2,
      maxItems: 2,
      items: {type: "number"},
    },
  })

  function validateRangeSchema(min: number, max: number): void {
    if (min > max || (keyword === "exclusiveRange" && min === max)) {
      throw new Error("There are no numbers in range")
    }
  }
}