UNPKG

ts-ioc-container

Version:

Fast, lightweight TypeScript dependency injection container with a clean API, scoped lifecycles, decorators, tokens, hooks, lazy injection, customizable providers, and no global container objects.

23 lines (22 loc) 693 B
export class AliasMap { aliasToKeySet = new Map(); getKeysByAlias(alias) { return [...(this.aliasToKeySet.get(alias) ?? [])]; } setAliasesByKey(key, aliases) { // reset existing key's aliases for (const [alias, keySet] of this.aliasToKeySet) { keySet.delete(key); if (keySet.size === 0) { this.aliasToKeySet.delete(alias); } } for (const alias of aliases) { const dependencyKeySet = this.aliasToKeySet.get(alias) ?? new Set(); this.aliasToKeySet.set(alias, dependencyKeySet.add(key)); } } destroy() { this.aliasToKeySet.clear(); } }