spb/datacenterindex
Public
HTML 53.9%
TypeScript 44.5%
JavaScript 0.6%
SQL 0.5%
1import type { Connector, Parser } from "./types.js";2import type { ConnectorConfig } from "./config.js";34/** Code-backed parsers (referenced by name from YAML `extractors.<x>.parser`). */5const parsers = new Map<string, Parser>();6export function registerParser(p: Parser): void { if (parsers.has(p.name)) throw new Error(`parser ${p.name} already registered`); parsers.set(p.name, p); }7export function getParser(name: string): Parser { const p = parsers.get(name); if (!p) throw new Error(`unknown parser ${name}`); return p; }8export function listParsers(): Parser[] { return [...parsers.values()]; }910/** Code-backed connector implementations (referenced from YAML `implementation:`), built from the config. */11type Factory = (cfg: ConnectorConfig) => Connector;12const implementations = new Map<string, Factory>();13export function registerImplementation(name: string, f: Factory): void { implementations.set(name, f); }14export function getImplementation(name: string): Factory | undefined { return implementations.get(name); }15export function listImplementations(): string[] { return [...implementations.keys()]; }16