@polgubau/utils
Version:
A collection of utility functions for TypeScript
1 lines • 1.63 kB
Source Map (JSON)
{"version":3,"sources":["../../../../src/functions/generate-uuid/generate-uuid.ts"],"sourcesContent":["export const generateUUID = (limit?: number): string => {\n // if limit is 0, return an empty string (why would you do this?)\n if (limit === 0) {\n return \"\";\n }\n\n // Generate a random array of 16 bytes (128 bits)\n const randomBytes = new Uint8Array(16);\n crypto.getRandomValues(randomBytes);\n\n // Set version (4) and variant (10) bits\n randomBytes[6] = (randomBytes[6] & 0x0f) | 0x40;\n randomBytes[8] = (randomBytes[8] & 0x3f) | 0x80;\n\n // Map bytes to hexadecimal and insert hyphens\n const hexBytes = Array.from(randomBytes, (byte) => byte.toString(16).padStart(2, \"0\"));\n\n // Join bytes into UUID format\n const uuid = `${hexBytes.slice(0, 4).join(\"\")}-${hexBytes\n .slice(4, 6)\n .join(\"\")}-${hexBytes.slice(6, 8).join(\"\")}-${hexBytes.slice(8, 10).join(\"\")}-${hexBytes.slice(10).join(\"\")}`;\n\n // Apply the limit if provided\n return limit ? uuid.slice(0, limit) : uuid;\n};\n"],"mappings":";AAAO,IAAM,eAAe,CAAC,UAA2B;AAEtD,MAAI,UAAU,GAAG;AACf,WAAO;AAAA,EACT;AAGA,QAAM,cAAc,IAAI,WAAW,EAAE;AACrC,SAAO,gBAAgB,WAAW;AAGlC,cAAY,CAAC,IAAK,YAAY,CAAC,IAAI,KAAQ;AAC3C,cAAY,CAAC,IAAK,YAAY,CAAC,IAAI,KAAQ;AAG3C,QAAM,WAAW,MAAM,KAAK,aAAa,CAAC,SAAS,KAAK,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC;AAGrF,QAAM,OAAO,GAAG,SAAS,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,SAC9C,MAAM,GAAG,CAAC,EACV,KAAK,EAAE,CAAC,IAAI,SAAS,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,SAAS,MAAM,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC;AAG7G,SAAO,QAAQ,KAAK,MAAM,GAAG,KAAK,IAAI;AACxC;","names":[]}