skip-event-bridge
Version:
Event bridge to partner tracking SDKs
30 lines (24 loc) • 764 B
text/typescript
import { Provider } from './types';
export default class MapProvider {
private providers: Record<string, Provider>;
constructor() {
this.providers = {};
}
addProvider(provider: Provider): string {
const id = Math.random().toString(36).substr(2);
this.providers[id] = provider;
return id;
}
deleteProvider(id: string): void {
delete this.providers[id];
}
getProviders(ids: Array<string>): Array<Provider> {
const providers = ids.map((id) => this.providers[id]);
return providers.length
? providers
: Object.keys(this.providers).reduce((prev: Array<Provider>, curr: string): Array<Provider> => {
const provider = this.providers[curr];
return [...prev, provider];
}, []);
}
}