UNPKG

@inversifyjs/core

Version:

InversifyJs core package

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