UNPKG

convokit

Version:

A flexible TypeScript framework for ingesting, processing, and exporting chat/conversation data for LLM training and analysis.

44 lines 1.32 kB
/** * Registry for all available ConvoKit providers. */ export class ProviderRegistry { static registry = new Map(); /** * Registers a provider with a unique ID. * @param id Unique provider identifier. * @param ctor Provider constructor. * @param info Provider metadata. */ static register(id, ctor, info) { if (ProviderRegistry.registry.has(id)) { throw new Error(`Provider with id "${id}" is already registered.`); } ProviderRegistry.registry.set(id, { id, ctor, info }); } /** * Retrieves a registered provider entry by ID. */ static get(id) { return ProviderRegistry.registry.get(id); } /** * Lists all registered provider entries. */ static list() { return Array.from(ProviderRegistry.registry.values()); } /** * Finds the registered ID for a given provider constructor. * @param ctor The provider constructor to find the ID for. * @returns The ID if found, otherwise undefined. */ static findIdByConstructor(ctor) { for (const [id, entry] of this.registry.entries()) { if (entry.ctor === ctor) { return id; } } return undefined; } } //# sourceMappingURL=ProviderRegistry.js.map