initial commit
This commit is contained in:
+1
@@ -0,0 +1 @@
|
||||
export * from "./v4";
|
||||
+1
@@ -0,0 +1 @@
|
||||
export const randomUUID = typeof crypto !== "undefined" && crypto.randomUUID && crypto.randomUUID.bind(crypto);
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
import crypto from "crypto";
|
||||
export const randomUUID = crypto.randomUUID.bind(crypto);
|
||||
+1
@@ -0,0 +1 @@
|
||||
export const randomUUID = typeof crypto !== "undefined" && crypto.randomUUID && crypto.randomUUID.bind(crypto);
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
import { randomUUID } from "./randomUUID";
|
||||
const decimalToHex = Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, "0"));
|
||||
export const v4 = () => {
|
||||
if (randomUUID) {
|
||||
return randomUUID();
|
||||
}
|
||||
const rnds = new Uint8Array(16);
|
||||
crypto.getRandomValues(rnds);
|
||||
rnds[6] = (rnds[6] & 0x0f) | 0x40;
|
||||
rnds[8] = (rnds[8] & 0x3f) | 0x80;
|
||||
return (decimalToHex[rnds[0]] +
|
||||
decimalToHex[rnds[1]] +
|
||||
decimalToHex[rnds[2]] +
|
||||
decimalToHex[rnds[3]] +
|
||||
"-" +
|
||||
decimalToHex[rnds[4]] +
|
||||
decimalToHex[rnds[5]] +
|
||||
"-" +
|
||||
decimalToHex[rnds[6]] +
|
||||
decimalToHex[rnds[7]] +
|
||||
"-" +
|
||||
decimalToHex[rnds[8]] +
|
||||
decimalToHex[rnds[9]] +
|
||||
"-" +
|
||||
decimalToHex[rnds[10]] +
|
||||
decimalToHex[rnds[11]] +
|
||||
decimalToHex[rnds[12]] +
|
||||
decimalToHex[rnds[13]] +
|
||||
decimalToHex[rnds[14]] +
|
||||
decimalToHex[rnds[15]]);
|
||||
};
|
||||
Reference in New Issue
Block a user