@inversifyjs/core
Version:
InversifyJs core package
60 lines • 2.32 kB
JavaScript
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
;