UNPKG

jorel

Version:

A unified wrapper for working with LLMs from multiple providers, including streams, images, documents & automatic tool use.

42 lines (41 loc) 1.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateMessageId = exports.generateUniqueId = exports.resolveIdGenerator = void 0; const ulid_1 = require("ulid"); const uuid_1 = require("uuid"); /** * Resolves a MessageIdGenerator to a function that generates unique IDs */ const resolveIdGenerator = (generator) => { if (typeof generator === "function") { return generator; } switch (generator) { case "ulid": return (params) => (0, ulid_1.ulid)(params.timestamp); case "uuidv4": return () => (0, uuid_1.v4)(); case "uuidv7": return (params) => (0, uuid_1.v7)({ msecs: params.timestamp }); default: throw new Error(`Unknown ID generator: ${generator}`); } }; exports.resolveIdGenerator = resolveIdGenerator; /** * Default unique ID generator (uuidv7) */ const generateUniqueId = (timestamp) => { return (0, uuid_1.v7)({ msecs: timestamp ?? Date.now() }); }; exports.generateUniqueId = generateUniqueId; /** * Generate a unique ID using the specified generator * @param generator - The generator to use (defaults to uuidv7) * @param role - The role of the message (used by custom generators) */ const generateMessageId = (generator = "uuidv7", timestamp) => { const generatorFn = (0, exports.resolveIdGenerator)(generator); return generatorFn({ timestamp: timestamp ?? Date.now() }); }; exports.generateMessageId = generateMessageId;