UNPKG

@inversifyjs/core

Version:

InversifyJs core package

60 lines 2.32 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DeactivationsService = void 0; const chain_1 = require("../../common/calculations/chain"); const OneToManyMapStar_1 = require("../../common/models/OneToManyMapStar"); var DeactivationRelationKind; (function (DeactivationRelationKind) { DeactivationRelationKind["moduleId"] = "moduleId"; DeactivationRelationKind["serviceId"] = "serviceId"; })(DeactivationRelationKind || (DeactivationRelationKind = {})); class DeactivationsService { #deactivationMaps; #parent; constructor(parent, deactivationMaps) { this.#deactivationMaps = deactivationMaps ?? new OneToManyMapStar_1.OneToManyMapStar({ moduleId: { isOptional: true, }, serviceId: { isOptional: false, }, }); this.#parent = parent; } static build(parent) { return new DeactivationsService(parent); } add(deactivation, relation) { this.#deactivationMaps.add(deactivation, relation); } clone() { const clone = new DeactivationsService(this.#parent, this.#deactivationMaps.clone()); return clone; } get(serviceIdentifier) { const deactivationIterables = []; const deactivations = this.#deactivationMaps.get(DeactivationRelationKind.serviceId, serviceIdentifier); if (deactivations !== undefined) { deactivationIterables.push(deactivations); } const parentDeactivations = this.#parent?.get(serviceIdentifier); if (parentDeactivations !== undefined) { deactivationIterables.push(parentDeactivations); } if (deactivationIterables.length === 0) { return undefined; } return (0, chain_1.chain)(...deactivationIterables); } removeAllByModuleId(moduleId) { this.#deactivationMaps.removeByRelation(DeactivationRelationKind.moduleId, moduleId); } removeAllByServiceId(serviceId) { this.#deactivationMaps.removeByRelation(DeactivationRelationKind.serviceId, serviceId); } } exports.DeactivationsService = DeactivationsService; //# sourceMappingURL=DeactivationsService.js.map