Skip to content

Latest commit

 

History

History
44 lines (35 loc) · 837 Bytes

uuidv4.md

File metadata and controls

44 lines (35 loc) · 837 Bytes

v4

Função que gera um UUID na versão 4.

Uso

import { v4 } from "toolkit-extra/uuid";

const uuid = v4(); // 1598838d-a312-4b53-b192-0acfac0da2dd

Referência

/**
 * @description Função que gera um UUId na versão 4.
 * @returns Uma string UUID v4
 */
export function v4(): string {
	const possibleCheckDigits = [8, 9, "a", "b", "a"] as const;
	const uuidShape = "xxxxxxxx-xxxx-4xxx-Nxxx-xxxxxxxxxxxx";
	let uuidResult = "";

	for (const char of uuidShape) {
		switch (char) {
			case "N": {
				uuidResult += possibleCheckDigits[getRandomNumber(0, possibleCheckDigits.length - 1)]?.toString() ?? "";
				break;
			}
			case "x": {
				uuidResult += HEXADECIMALS[getRandomNumber(0, HEXADECIMALS.length - 1)];
				break;
			}
			default: {
				uuidResult += char;
			}
		}
	}

	return uuidResult;
}