UNPKG

@tanstack/ai

Version:

Type-safe TypeScript AI SDK for streaming chat, tool calling, agents, structured outputs, and multimodal generation.

84 lines (83 loc) 2.22 kB
const DIR_OPTIONS = { depth: null, colors: true }; function resolveMetaStrategy() { try { if (globalThis.navigator?.userAgent === "Cloudflare-Workers") return "json"; } catch { } if (typeof process !== "undefined" && // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- a partial process global (bundler shims) may lack versions typeof process.versions?.node === "string") { return "dir"; } return "arg"; } function stringifyMetaSafely(value) { const seen = /* @__PURE__ */ new WeakSet(); try { return JSON.stringify( value, (_key, entry) => { if (typeof entry === "bigint") return entry.toString(); if (entry instanceof Error) { return { name: entry.name, message: entry.message, stack: entry.stack }; } if (typeof entry === "object" && entry !== null) { if (seen.has(entry)) return "[Circular]"; seen.add(entry); } return entry; }, 2 ); } catch { try { return String(value); } catch { return "[Unserializable meta]"; } } } class ConsoleLogger { /** Log a debug-level message; forwards to `console.debug`. */ debug(message, meta) { this.emit("debug", message, meta); } /** Log an info-level message; forwards to `console.info`. */ info(message, meta) { this.emit("info", message, meta); } /** Log a warning-level message; forwards to `console.warn`. */ warn(message, meta) { this.emit("warn", message, meta); } /** Log an error-level message; forwards to `console.error`. */ error(message, meta) { this.emit("error", message, meta); } emit(level, message, meta) { if (meta === void 0) { console[level](message); return; } switch (resolveMetaStrategy()) { case "dir": console[level](message); console.dir(meta, DIR_OPTIONS); break; case "json": console[level](`${message} ${stringifyMetaSafely(meta)}`); break; case "arg": console[level](message, meta); break; } } } export { ConsoleLogger }; //# sourceMappingURL=console-logger.js.map