UNPKG

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