UNPKG

assistant-stream

Version:

Streaming utilities for AI assistants

23 lines (22 loc) • 1.05 kB
// src/utils/json/json-parser-backend.ts const registryKey = Symbol.for("assistant-stream.json-parser-backends.v1"); const registryHost = globalThis; /** * Registers a backend for new shared JSON parsers in this JavaScript realm. * The most recent registration takes precedence, including across package copies. * The backend must preserve native values, metadata, and independent branches; * returning undefined or throwing falls back to native parsing. * Unregistering removes only this registration and leaves existing parsers intact. */ const registerJsonParserBackend = (factory) => { const registrations = registryHost[registryKey] ??= []; const registration = { factory }; registrations.push(registration); return () => { const index = registrations.indexOf(registration); if (index !== -1) registrations.splice(index, 1); }; }; const createJsonParserBackend = (context) => registryHost[registryKey]?.at(-1)?.factory(context); export { createJsonParserBackend, registerJsonParserBackend }; //# sourceMappingURL=json-parser-backend.js.map