async/await wrapper for express middleware
// wrap async function to use as express middleware or route
// let wrap = fn => (...args) => fn(...args).catch(args[2])
function wrapRoute(fn) {
return function () {
return fn.apply(undefined, arguments)
.catch(arguments[arguments.length - 1]);
};
}
function wrapMiddleware(fn) {
return function () {
const next = arguments[arguments.length - 1];
return fn.apply(undefined, arguments)
.then(next.bind(null, null))
.catch(next);
};
}