rdesign/frontend/node_modules/@copilotkit/shared/dist/utils/random-id.mjs

34 lines
1.1 KiB
JavaScript

import { v4, v5, validate } from "uuid";
//#region src/utils/random-id.ts
function randomId() {
return "ck-" + v4();
}
function randomUUID() {
return v4();
}
/**
* Recursively converts an object to a serializable form by converting functions to their string representation.
*/
function toSerializable(value) {
if (typeof value === "function") return value.toString();
if (Array.isArray(value)) return value.map(toSerializable);
if (value !== null && typeof value === "object") {
const result = {};
for (const key of Object.keys(value)) result[key] = toSerializable(value[key]);
return result;
}
return value;
}
function dataToUUID(input, namespace) {
const BASE_NAMESPACE = "e4b01160-ff74-4c6e-9b27-d53cd930fe8e";
const boundNamespace = namespace ? v5(namespace, BASE_NAMESPACE) : BASE_NAMESPACE;
return v5(typeof input === "string" ? input : JSON.stringify(toSerializable(input)), boundNamespace);
}
function isValidUUID(uuid) {
return validate(uuid);
}
//#endregion
export { dataToUUID, isValidUUID, randomId, randomUUID };
//# sourceMappingURL=random-id.mjs.map