UNPKG

acelga-bus

Version:

An extensible typescript message bus with support for middlewares

52 lines 1.93 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var Operation; (function (Operation) { Operation[Operation["Add"] = 0] = "Add"; Operation[Operation["Multiply"] = 1] = "Multiply"; Operation[Operation["Divide"] = 2] = "Divide"; Operation[Operation["Substract"] = 3] = "Substract"; Operation[Operation["Void"] = 4] = "Void"; })(Operation = exports.Operation || (exports.Operation = {})); exports.OperationMiddleware = (number, operation) => (event) => { switch (operation) { case Operation.Add: return Promise.resolve(event + number); case Operation.Multiply: return Promise.resolve(event * number); case Operation.Divide: return Promise.resolve(event / number); case Operation.Substract: return Promise.resolve(event - number); case Operation.Void: return Promise.resolve(); default: return Promise.resolve(event); } }; class CustomEventNumber { constructor(data = 0) { this.data = data; } } exports.CustomEventNumber = CustomEventNumber; exports.CustomEventOperationMiddleware = (number, operation) => (event) => { switch (operation) { case Operation.Add: return Promise.resolve(new CustomEventNumber(event.data + number)); case Operation.Multiply: return Promise.resolve(new CustomEventNumber(event.data * number)); case Operation.Divide: return Promise.resolve(new CustomEventNumber(event.data / number)); case Operation.Substract: return Promise.resolve(new CustomEventNumber(event.data - number)); case Operation.Void: return Promise.resolve(); default: return Promise.resolve(new CustomEventNumber(event.data)); } }; class EmptyEvent { } exports.EmptyEvent = EmptyEvent; //# sourceMappingURL=utils.js.map