| 123456789101112131415161718192021222324252627 |
- import type { DataSource } from "./types.js";
- const collectors = new Map<string, (config?: Record<string, any>) => DataSource>();
- export function registerCollector(
- name: string,
- factory: (config?: Record<string, any>) => DataSource
- ): void {
- collectors.set(name, factory);
- }
- export function getCollector(
- name: string,
- config?: Record<string, any>
- ): DataSource {
- const factory = collectors.get(name);
- if (!factory) {
- throw new Error(
- `Unknown collector: ${name}. Available: ${[...collectors.keys()].join(", ")}`
- );
- }
- return factory(config);
- }
- export function listCollectorNames(): string[] {
- return [...collectors.keys()];
- }
|