utils_crypto_generate-uuidv4.ts

/**
 * Math.random 기반의 UUID 생성용
 *
 * @function generateUUIDv4
 * @returns {string} UUID v4 형식의 36자리 문자열 (예:
 *                   110ec58a-a0f2-4ac4-8393-c866d813b8d1)
 * @memberof $f
 * @example
 * const uuid = generateUUIDv4();
 * console.log(uuid); // "110ec58a-a0f2-4ac4-8393-c866d813b8d1"
 *
 */
export function generateUUIDv4(): string {
    return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(
        /[xy]/g,
        function (c) {
            const r = (Math.random() * 16) | 0; // 0~15 범위의 난수
            const v = c === "x" ? r : (r & 0x3) | 0x8; // UUID v4 규칙 적용
            return v.toString(16);
        },
    );
}