UNPKG

skip-event-bridge

Version:
30 lines (24 loc) 764 B
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]; }, []); } }