curli-bus
Version:
Simple Command Bus Implementation (CQRS) for NodeJS/Typescript.
21 lines (20 loc) • 674 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
class MiddlewareCollection {
constructor() {
this.collection = [];
}
add(middleware) {
this.collection.push(middleware);
}
execute(request, options) {
const runRequestInMiddlewareCollection = this.collection.reduceRight((next, middleware) => {
return middleware.execute.bind(middleware, request, next, options);
}, (results) => results);
return runRequestInMiddlewareCollection(request);
}
removeLast() {
this.collection.pop();
}
}
exports.MiddlewareCollection = MiddlewareCollection;