Middleware example
by infous
JavaScript
var app = {
showMessage: function (m) {
alert(m);
}
};
function patchAppToAddErrors() {
var next = app.showMessage;
return function (m) {
console.error('This is an error!');
next(m);
console.error('End error!');
};
};
function patchAppToAddLogging() {
var next = app.showMessage;
return function (m) {
console.log('Start message:', m);
next(m);
console.log('End message!');
};
};
function applyMiddlewareByMonkeypatching(middlewares) {
//middlewares = middlewares.slice();
middlewares.reverse();
middlewares.forEach(function (middleware) {
app.showMessage = middleware();
})
}
applyMiddlewareByMonkeypatching([patchAppToAddLogging, patchAppToAddErrors]);
app.showMessage('Hello!');