{"version":3,"file":"Number.cjs","sources":["../../src/types/Number.ts"],"sourcesContent":["import XVType from \"../XVType\";\n\nclass XVNumber<T extends number = number> extends XVType<T> {\n   constructor(length?: number) {\n      super();\n      if (length !== undefined) {\n         this.length(length);\n      }\n   }\n\n   protected check(value: any): T {\n      if (typeof value !== \"number\") {\n         throw new Error(`Value should be a number, received ${typeof value}`);\n      }\n      return value as T\n   }\n\n   length(value: number) {\n      return this.set(\"length\", (v: unknown) => {\n         const n = v as number;\n         if (n.toString().length !== value) {\n            throw new Error(\n               `Number length should be ${value} digits, received ${n.toString().length}`\n            );\n         }\n      }, value);\n   }\n\n   min(value: number) {\n      return this.set(\"min\", (v: unknown) => {\n         const n = v as number;\n         if (n < value) {\n            throw new Error(`Minimum value should be ${value}, received ${n}`);\n         }\n      }, value);\n   }\n\n   max(value: number) {\n      return this.set(\"max\", (v: unknown) => {\n         const n = v as number;\n         if (n > value) {\n            throw new Error(`Maximum value should be ${value}, received ${n}`);\n         }\n      }, value);\n   }\n\n   positive() {\n      return this.set(\"positive\", (v: unknown) => {\n         const n = v as number;\n         if (n < 0) {\n            throw new Error(`Value should be positive, received ${n}`);\n         }\n      });\n   }\n\n   negative() {\n      return this.set(\"negative\", (v: unknown) => {\n         const n = v as number;\n         if (!Number.isInteger(n) || n > 0) {\n            throw new Error(`Value should be negative, received ${n}`);\n         }\n      });\n   }\n\n   integer() {\n      return this.set(\"integer\", (v: unknown) => {\n         const n = v as number;\n         if (!Number.isInteger(n)) {\n            throw new Error(`Value should be an integer, received ${n}`);\n         }\n      });\n   }\n\n   float() {\n      return this.set(\"float\", (v: unknown) => {\n         const n = v as number;\n         if (!Number.isFinite(n)) {\n            throw new Error(`Value should be a float, received ${n}`);\n         }\n      });\n   }\n}\n\nexport default XVNumber;\n"],"names":[],"mappings":"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"}