UNPKG

@mbc-cqrs-serverless/core

Version:
74 lines 3.3 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var EventService_1; Object.defineProperty(exports, "__esModule", { value: true }); exports.EventService = void 0; const common_1 = require("@nestjs/common"); const default_event_factory_1 = require("./default-event-factory"); const event_bus_1 = require("./event-bus"); const EVENT_FACTORY = Symbol(); let EventService = EventService_1 = class EventService { constructor(eventBus) { this.eventBus = eventBus; this.logger = new common_1.Logger(EventService_1.name); this.setDefaultEventFactory(); } get eventFactory() { return this[EVENT_FACTORY]; } set eventFactory(ef) { this[EVENT_FACTORY] = ef; } setDefaultEventFactory() { this.eventFactory = new default_event_factory_1.DefaultEventFactory(); } async handleSnsEvent(raw) { this.logger.debug('handleSnsEvent::', raw); const events = await this.eventFactory.transformSns(raw); return this.execute(events); } async handleSqsEvent(raw) { this.logger.debug('handleSqsEvent::', raw); // TODO Implementing partial batch responses // https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#services-sqs-batchfailurereporting const events = await this.eventFactory.transformSqs(raw); return this.execute(events); } async handleDynamoDBEvent(raw) { this.logger.debug('handleDynamoDBEvent::', raw); const events = await this.eventFactory.transformDynamodbStream(raw); return this.execute(events); } async handleEventBridgeEvent(raw) { this.logger.debug('handleEventBridgeEvent::', raw); const events = await this.eventFactory.transformEventBridge(raw); return this.execute(events); } async handleStepFunctionsEvent(raw) { this.logger.debug('handleStepFunctionsEvent::', raw); const events = await this.eventFactory.transformStepFunction(raw); return this.execute(events); } async handleS3Event(raw) { this.logger.debug('handleS3Event::', raw); const events = await this.eventFactory.transformS3(raw); return this.execute(events); } execute(events) { return Promise.all(events.map((event) => this.eventBus.execute(event))); } }; exports.EventService = EventService; exports.EventService = EventService = EventService_1 = __decorate([ (0, common_1.Injectable)(), __metadata("design:paramtypes", [event_bus_1.EventBus]) ], EventService); //# sourceMappingURL=event.services.js.map