1 line
2.0 KiB
Plaintext
1 line
2.0 KiB
Plaintext
{"version":3,"file":"random-id.cjs","names":["uuid"],"sources":["../../src/utils/random-id.ts"],"sourcesContent":["import { v4 as uuidv4, validate, v5 as uuidv5 } from \"uuid\";\n\nexport function randomId() {\n return \"ck-\" + uuidv4();\n}\n\nexport function randomUUID() {\n return uuidv4();\n}\n\n/**\n * Recursively converts an object to a serializable form by converting functions to their string representation.\n */\nfunction toSerializable(value: unknown): unknown {\n if (typeof value === \"function\") {\n return value.toString();\n }\n if (Array.isArray(value)) {\n return value.map(toSerializable);\n }\n if (value !== null && typeof value === \"object\") {\n const result: Record<string, unknown> = {};\n for (const key of Object.keys(value)) {\n result[key] = toSerializable((value as Record<string, unknown>)[key]);\n }\n return result;\n }\n return value;\n}\n\nexport function dataToUUID(input: string | object, namespace?: string): string {\n const BASE_NAMESPACE = \"e4b01160-ff74-4c6e-9b27-d53cd930fe8e\";\n // Since namespace needs to be a uuid, we are creating a uuid for it.\n const boundNamespace = namespace\n ? uuidv5(namespace, BASE_NAMESPACE)\n : BASE_NAMESPACE;\n\n const stringInput =\n typeof input === \"string\" ? input : JSON.stringify(toSerializable(input));\n return uuidv5(stringInput, boundNamespace);\n}\n\nexport function isValidUUID(uuid: string) {\n return validate(uuid);\n}\n"],"mappings":";;;;AAEA,SAAgB,WAAW;AACzB,QAAO,sBAAgB;;AAGzB,SAAgB,aAAa;AAC3B,sBAAe;;;;;AAMjB,SAAS,eAAe,OAAyB;AAC/C,KAAI,OAAO,UAAU,WACnB,QAAO,MAAM,UAAU;AAEzB,KAAI,MAAM,QAAQ,MAAM,CACtB,QAAO,MAAM,IAAI,eAAe;AAElC,KAAI,UAAU,QAAQ,OAAO,UAAU,UAAU;EAC/C,MAAM,SAAkC,EAAE;AAC1C,OAAK,MAAM,OAAO,OAAO,KAAK,MAAM,CAClC,QAAO,OAAO,eAAgB,MAAkC,KAAK;AAEvE,SAAO;;AAET,QAAO;;AAGT,SAAgB,WAAW,OAAwB,WAA4B;CAC7E,MAAM,iBAAiB;CAEvB,MAAM,iBAAiB,yBACZ,WAAW,eAAe,GACjC;AAIJ,qBADE,OAAO,UAAU,WAAW,QAAQ,KAAK,UAAU,eAAe,MAAM,CAAC,EAChD,eAAe;;AAG5C,SAAgB,YAAY,QAAc;AACxC,2BAAgBA,OAAK"} |