feedless/app/lib/utils.js

36 lines
781 B
JavaScript
Raw Normal View History

module.exports.promisify = (method, options = null) => {
return new Promise((resolve, reject) => {
const callback = (err, result) => {
if (err) return reject(err);
return resolve(result);
};
if (options) {
method(options, callback);
} else {
method(callback);
}
});
};
module.exports.asyncRouter = (app) => {
const debug = require("debug")("router");
let wrapper = (debugMsg, fn) => async (req, res, next) => {
try {
debug(debugMsg);
await fn(req, res);
} catch (e) {
next(e);
}
};
return {
get: (path, fn) => {
app.get(path, wrapper(`GET ${path}`, fn));
},
post: (path, fn) => {
debug(`POST ${path}`);
app.post(path, wrapper(`POST ${path}`, fn));
},
};
};