{"version":3,"file":"index.mjs","sources":[""],"sourcesContent":["export type TGetRandomIntFromIntervalArgs = Parameters<typeof getRandomIntFromInterval>;\r\n\r\nexport type TGetRandomIntFromIntervalReturn = ReturnType<typeof getRandomIntFromInterval>;\r\n\r\n/**\r\n * Gets a random integer between min and max (inclusive)\r\n * @param {number} [min=1] Min value\r\n * @param {number} [max=1000000000] Max value\r\n * @returns {number} Random integer in [min, max]\r\n * @throws {TypeError} getRandomIntFromInterval: min and max must be finite numbers\n * @throws {RangeError} getRandomIntFromInterval: interval must contain at least one integer\n * @example\r\n * // How to generate random number between two numbers?\r\n * const randomNumber = getRandomIntFromInterval(1, 10);\n * console.log(randomNumber >= 1 && randomNumber <= 10); // => true\n * @example\n * // Pick a random promotional banner by its array index\n * const bannerIndex = getRandomIntFromInterval(0, banners.length - 1);\n * const banner = banners[bannerIndex];\n */\nexport const getRandomIntFromInterval = (min: number = 1, max: number = 1_000_000_000): number => {\n  if (!Number.isFinite(min) || !Number.isFinite(max)) {\n    throw new TypeError(\"getRandomIntFromInterval: min and max must be finite numbers\");\n  }\n\n  if (max < min) {\n    const t = min;\n    min = max;\n    max = t;\n  }\n\n  min = Math.ceil(min);\n  max = Math.floor(max);\n\n  const span = (max - min) + 1;\n  if (!Number.isFinite(span) || span <= 0) {\n    throw new RangeError(\"getRandomIntFromInterval: interval must contain at least one integer\");\n  }\n\r\n  return Math.floor(Math.random() * span + min);\r\n};\r\n"],"names":["getRandomIntFromInterval","min","max","Number","isFinite","TypeError","t","Math","ceil","floor","span","RangeError","random"],"mappings":"AAoBO,MAAMA,yBAA2B,CAACC,IAAc,EAAGC,IAAc,iBACtE,IAAKC,OAAOC,SAASH,OAASE,OAAOC,SAASF,KAC5C,MAAM,IAAIG,UAAU,gEAGtB,GAAIH,IAAMD,IAAK,CACb,MAAMK,EAAIL,IACVA,IAAMC,IACNA,IAAMI,CACR,CAEAL,IAAMM,KAAKC,KAAKP,KAChBC,IAAMK,KAAKE,MAAMP,KAEjB,MAAMQ,KAAQR,IAAMD,IAAO,EAC3B,IAAKE,OAAOC,SAASM,OAASA,MAAQ,EACpC,MAAM,IAAIC,WAAW,wEAGvB,OAAOJ,KAAKE,MAAMF,KAAKK,SAAWF,KAAOT"}