32 lines
792 B
TypeScript
32 lines
792 B
TypeScript
import {
|
|
parse as uuidParse,
|
|
stringify as uuidStringify,
|
|
v4 as uuidv4,
|
|
v7 as uuidv7,
|
|
validate,
|
|
version,
|
|
} from "uuid";
|
|
|
|
export const generateUUIDv4 = (): string => uuidv4();
|
|
export const generateUUIDv7 = (): string => uuidv7();
|
|
|
|
export function uuidStringToBinary(uuid: string): Buffer {
|
|
return Buffer.from(uuidParse(uuid));
|
|
}
|
|
|
|
export function uuidBinaryToString(buffer: Buffer): string {
|
|
return uuidStringify(buffer);
|
|
}
|
|
|
|
export function isUuidValid(value: string): boolean {
|
|
return validate(value) && version(value) === 7;
|
|
}
|
|
|
|
export function isUuidBinary(value: unknown): value is Buffer {
|
|
return Buffer.isBuffer(value) && value.length === 16;
|
|
}
|
|
|
|
export function isUuidString(value: unknown): value is string {
|
|
return typeof value === "string" && isUuidValid(value);
|
|
}
|