@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.67 kB
Source Map (JSON)
{"version":3,"file":"index.cjs","sources":[""],"sourcesContent":["import { getRandomIntFromInterval } from \"../../num/getRandomIntFromInterval/index.ts\";\r\n\r\nexport type TGetIdArgs = Parameters<typeof getId>;\r\n\r\nexport type TGetIdReturn = ReturnType<typeof getId>;\r\n\r\n/**\r\n * Gets unique string ID.\r\n * @param length{Number=} length of ID\r\n * @returns {string}\r\n * @throws {TypeError} getId: length must be a positive finite integer\r\n * @example\r\n * // How to generate unique string ID?\r\n * const uniqueId = getId(100);\r\n * console.log(uniqueId.length); // 100\r\n */\r\nexport const getId = (length: number = getRandomIntFromInterval(8, 16)): string => {\r\n if (typeof length !== \"number\" || !Number.isFinite(length) || length <= 0 || Math.floor(length) !== length) {\r\n throw new TypeError(\"getId: length must be a positive finite integer\");\r\n }\r\n\r\n const str = new Array(3)\r\n .fill(\"\")\r\n .map(() => Math.random().toString(36).substring(2));\r\n\r\n const counter = Math.floor(Math.random() * 10 ** 8);\r\n\r\n return `${str.join(\"\")}}${counter}`.substring(0, length);\r\n};\r\n"],"names":["getId","length","getRandomIntFromInterval","Number","isFinite","Math","floor","TypeError","str","Array","fill","map","random","toString","substring","counter","join"],"mappings":";;;;;;;;;;GAgBO,MAAMA,MAAQA,CAACC,OAAiBC,MAAAA,yBAAyB,EAAG,OACjE,UAAWD,SAAW,WAAaE,OAAOC,SAASH,SAAWA,QAAU,GAAKI,KAAKC,MAAML,UAAYA,OAClG,MAAM,IAAIM,UAAU,mDAGtB,MAAMC,IAAM,IAAIC,MAAM,GACnBC,KAAK,IACLC,IAAI,IAAMN,KAAKO,SAASC,SAAS,IAAIC,UAAU,IAElD,MAAMC,QAAUV,KAAKC,MAAMD,KAAKO,SAAW,IAAM,GAEjD,MAAO,GAAGJ,IAAIQ,KAAK,OAAOD,UAAUD,UAAU,EAAGb"}