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.

27 lines (26 loc) 819 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AliasMap = void 0; 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(); } } exports.AliasMap = AliasMap;