UNPKG

id-generator-ts

Version:

Generate Universally Unique Identifiers (UUIDs) in your React apps with ease using this custom React hook. Ensure uniqueness and randomness, even in browsers without native crypto support. Ideal for creating unique keys, tracking, and data management.

36 lines 1.69 kB
var timestamp = Math.floor(Date.now() / 1000) .toString(16) .padStart(8, '0'); function useUUID() { var cryptoObj = window.crypto; if (cryptoObj && cryptoObj.getRandomValues) { var uuidBytes = new Uint8Array(16); cryptoObj.getRandomValues(uuidBytes); uuidBytes[6] = (uuidBytes[6] & 0x0f) | 0x40; uuidBytes[8] = (uuidBytes[8] & 0x3f) | 0x80; var hexDigits = []; for (var i = 0; i < 16; i++) { var byteValue = uuidBytes[i]; hexDigits.push((byteValue >>> 4).toString(16)); hexDigits.push((byteValue & 0x0f).toString(16)); } hexDigits.push(timestamp); var uuidString = hexDigits.join(''); return "".concat(uuidString.slice(0, 8), "-").concat(uuidString.slice(8, 12), "-").concat(uuidString.slice(12, 16), "-").concat(uuidString.slice(16, 20), "-").concat(uuidString.slice(20)); } else { var uuidArray = new Array(16); for (var i = 0; i < 16; i++) { uuidArray[i] = Math.floor(Math.random() * 256); } uuidArray[6] = (uuidArray[6] & 0x0f) | 0x40; uuidArray[8] = (uuidArray[8] & 0x3f) | 0x80; uuidArray.push.apply(uuidArray, timestamp.split('').map(function (hex) { return parseInt(hex, 16); })); var uuidString = uuidArray .map(function (byte) { return byte.toString(16).padStart(2, '0'); }) .join(''); return "".concat(uuidString.slice(0, 8), "-").concat(uuidString.slice(8, 12), "-").concat(uuidString.slice(12, 16), "-").concat(uuidString.slice(16, 20), "-").concat(uuidString.slice(20)); } } export default useUUID; //# sourceMappingURL=index.js.map