@web3r/flowerkit
Version:
Tree-shakable JavaScript and TypeScript utility library for frontend/browser apps: DOM, events, arrays, objects, strings, date, JSON, and network helpers (ESM/CJS, SSR-friendly).
1 lines • 1.92 kB
Source Map (JSON)
{"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 numbers\r\n * @example\r\n * // How to generate random number between two numbers?\r\n * const randomNumber = getRandomIntFromInterval(1, 10);\r\n * console.log(randomNumber >= 1 && randomNumber <= 10); // => true\r\n */\r\nexport const getRandomIntFromInterval = (min: number = 1, max: number = 1_000_000_000): number => {\r\n if (typeof min !== \"number\" || typeof max !== \"number\" || Number.isNaN(min) || Number.isNaN(max)) {\r\n throw new TypeError(\"getRandomIntFromInterval: min and max must be numbers\");\r\n }\r\n\r\n min = Math.round(min);\r\n max = Math.round(max);\r\n\r\n if (max < min) {\r\n const t = min;\r\n min = max;\r\n max = t;\r\n }\r\n\r\n const span = (max - min) + 1;\r\n if (!Number.isFinite(span) || span <= 0) {\r\n return min;\r\n }\r\n\r\n return Math.floor(Math.random() * span + min);\r\n};\r\n"],"names":["getRandomIntFromInterval","min","max","Number","isNaN","TypeError","Math","round","t","span","isFinite","floor","random"],"mappings":";;;;;;;;;;;AAeO,MAAMA,yBAA2BA,CAACC,IAAc,EAAGC,IAAc,iBACtE,UAAWD,MAAQ,iBAAmBC,MAAQ,UAAYC,OAAOC,MAAMH,MAAQE,OAAOC,MAAMF,KAC1F,MAAM,IAAIG,UAAU,yDAGtBJ,IAAMK,KAAKC,MAAMN,KACjBC,IAAMI,KAAKC,MAAML,KAEjB,GAAIA,IAAMD,IAAK,CACb,MAAMO,EAAIP,IACVA,IAAMC,IACNA,IAAMM,CACR,CAEA,MAAMC,KAAQP,IAAMD,IAAO,EAC3B,IAAKE,OAAOO,SAASD,OAASA,MAAQ,EACpC,OAAOR,IAGT,OAAOK,KAAKK,MAAML,KAAKM,SAAWH,KAAOR"}