UNPKG

@visactor/vrender-core

Version:

```typescript import { xxx } from '@visactor/vrender-core'; ```

30 lines (28 loc) 905 B
function isRendererFactory(entry) { return "function" == typeof entry; } export class RendererRegistry { constructor() { this.entries = new Map, this.cache = new Map; } register(key, renderer) { this.entries.set(key, renderer), this.cache.delete(key); } unregister(key) { this.entries.delete(key), this.cache.delete(key); } get(key) { if (this.cache.has(key)) return this.cache.get(key); const entry = this.entries.get(key); if (!entry) return; const renderer = isRendererFactory(entry) ? entry() : entry; return this.cache.set(key, renderer), renderer; } getAll() { return Array.from(this.entries.keys()).map((key => this.get(key))).filter((renderer => !!renderer)); } clear() { this.entries.clear(), this.cache.clear(); } } //# sourceMappingURL=renderer-registry.js.map