acelga-bus
Version:
An extensible typescript message bus with support for middlewares
52 lines • 1.93 kB
JavaScript
;
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