17 lines
695 B
TypeScript
17 lines
695 B
TypeScript
export default class DeviceId {
|
|
static uuidv4(): string {
|
|
const hex: string[] = [];
|
|
for (let i = 0; i < 256; i++) hex[i] = (i < 16 ? "0" : "") + i.toString(16);
|
|
const r: number[] = [];
|
|
for (let i = 0; i < 16; i++) r[i] = Math.floor(Math.random() * 256);
|
|
r[6] = (r[6] & 0x0f) | 0x40; // version 4
|
|
r[8] = (r[8] & 0x3f) | 0x80; // variant
|
|
return (
|
|
hex[r[0]] + hex[r[1]] + hex[r[2]] + hex[r[3]] + "-" +
|
|
hex[r[4]] + hex[r[5]] + "-" +
|
|
hex[r[6]] + hex[r[7]] + "-" +
|
|
hex[r[8]] + hex[r[9]] + "-" +
|
|
hex[r[10]] + hex[r[11]] + hex[r[12]] + hex[r[13]] + hex[r[14]] + hex[r[15]]
|
|
);
|
|
}
|
|
} |