UNPKG

ts-ioc-container

Version:
33 lines (32 loc) 1.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AliasMap = void 0; const utils_1 = require("../utils"); class AliasMap { aliasToKeySet = new Map(); deleteKeyFromAliases(key) { for (const [depKey, aliasSet] of [...this.aliasToKeySet].filter(([k, aliasSet]) => aliasSet.has(key))) { aliasSet.delete(key); if (aliasSet.size === 0) { this.aliasToKeySet.delete(depKey); } } } findManyKeysByAlias(alias) { return [...(this.aliasToKeySet.get(alias) ?? [])]; } findLastKeyByAlias(alias) { const keys = [...(this.aliasToKeySet.get(alias) ?? [])]; return keys.length > 0 ? utils_1.List.lastOf(keys) : undefined; } addAliases(key, aliases) { for (const alias of aliases) { const currentAliasKeys = this.aliasToKeySet.get(alias) ?? new Set(); this.aliasToKeySet.set(alias, currentAliasKeys.add(key)); } } destroy() { this.aliasToKeySet.clear(); } } exports.AliasMap = AliasMap;