UNPKG

@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
"use strict"; // 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=