@dolittle/sdk.events.handling
Version:
Dolittle is a decentralized, distributed, event-driven microservice platform built to harness the power of events.
43 lines • 3.28 kB
JavaScript
;
// Copyright (c) Dolittle. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
Object.defineProperty(exports, "__esModule", { value: true });
exports.EventHandlersModelBuilder = void 0;
const EventHandlerProcessor_1 = require("../Internal/EventHandlerProcessor");
const EventHandlerBuilder_1 = require("./EventHandlerBuilder");
const EventHandlerClassBuilder_1 = require("./EventHandlerClassBuilder");
/**
* Represents a builder that can build {@link EventHandlerProcessor} from an {@link IModel}.
*/
class EventHandlersModelBuilder {
/**
* Initialises a new instance of the {@link EventFiltersModelBuilder} class.
* @param {IModel} _model - The built application model.
* @param {IClientBuildResults} _buildResults - For keeping track of build results.
* @param {IEventTypes} _eventTypes - For event types resolution.
* @param {IServiceProviderBuilder} _bindings - For registering the bindings for the event handler classes.
*/
constructor(_model, _buildResults, _eventTypes, _bindings) {
this._model = _model;
this._buildResults = _buildResults;
this._eventTypes = _eventTypes;
this._bindings = _bindings;
}
/**
* Builds all the event handlers.
* @returns {EventHandlerProcessor[]} The built event handlers.
*/
build() {
const builders = this._model.getProcessorBuilderBindings(EventHandlerBuilder_1.EventHandlerBuilder, EventHandlerClassBuilder_1.EventHandlerClassBuilder);
const processors = [];
for (const { processorBuilder } of builders) {
const handler = processorBuilder.build(this._eventTypes, this._bindings, this._buildResults);
if (handler !== undefined) {
processors.push(new EventHandlerProcessor_1.EventHandlerProcessor(handler, this._eventTypes));
}
}
return processors;
}
}
exports.EventHandlersModelBuilder = EventHandlersModelBuilder;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRIYW5kbGVyc01vZGVsQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIuLi8iLCJzb3VyY2VzIjpbIkJ1aWxkZXJzL0V2ZW50SGFuZGxlcnNNb2RlbEJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLCtDQUErQztBQUMvQyxxR0FBcUc7OztBQU1yRyw2RUFBMEU7QUFDMUUsK0RBQTREO0FBQzVELHlFQUFzRTtBQUV0RTs7R0FFRztBQUNILE1BQWEseUJBQXlCO0lBQ2xDOzs7Ozs7T0FNRztJQUNILFlBQ3FCLE1BQWMsRUFDZCxhQUFrQyxFQUNsQyxXQUF3QixFQUN4QixTQUFrQztRQUhsQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2Qsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBQ2xDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGNBQVMsR0FBVCxTQUFTLENBQXlCO0lBQ3BELENBQUM7SUFFSjs7O09BR0c7SUFDSCxLQUFLO1FBQ0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyx5Q0FBbUIsRUFBRSxtREFBd0IsQ0FBQyxDQUFDO1FBQ3hHLE1BQU0sVUFBVSxHQUE0QixFQUFFLENBQUM7UUFFL0MsS0FBSyxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxRQUFRLEVBQUU7WUFDekMsTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDN0YsSUFBSSxPQUFPLEtBQUssU0FBUyxFQUFFO2dCQUN2QixVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksNkNBQXFCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO2FBQ3pFO1NBQ0o7UUFFRCxPQUFPLFVBQVUsQ0FBQztJQUN0QixDQUFDO0NBQ0o7QUFoQ0QsOERBZ0NDIn0=