UNPKG

673 BJavaScriptView Raw
1// @ts-nocheck
2
3import { randomUUID } from "crypto";
4
5/**
6 * @typedef {import("../types/advanced-types").UuidFunc} UuidFunc
7 */
8
9/**
10 * This function also has an `uuid.isValid` function, which returns a boolean depending
11 * on if the passed in string is a valid uuid.
12 *
13 * @since 0.1.0
14 * @summary Returns a new uuid v4
15 *
16 * @type {UuidFunc}
17 */
18export const uuid = randomUUID;
19
20/**
21 * @param {any} value
22 * @returns {boolean}
23 */
24uuid.isValid = (value) => {
25 if (typeof value !== "string") {
26 return false;
27 }
28
29 if (value.length !== 36) {
30 return false;
31 }
32
33 return /^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}$/gi.test(
34 value,
35 );
36};