UNPKG

1.05 kBJavaScriptView Raw
1const requestIp = require('request-ip');
2const success = require('./success');
3const error = require('./error');
4const audit = require('./audit');
5const resolve = require('./resolve');
6const reject = require('./reject');
7
8/**
9 * Out boilerplate to make things easier.
10 *
11 * @return {ExpressMiddleware} a middleware that will attach a bunch of convenience properties and functions to req and res.
12 */
13function bootstrap(app, config)
14{
15 // helper function
16 config.audit = config.audit || app.audit || audit;
17 app.audit = config.audit;
18
19 return function (req, res, next)
20 {
21 req.clientIp = requestIp.getClientIp(req);
22 req.audit = res.audit = function ()
23 {
24 let source = `${req.user ? req.user.id : 'anonymous'}@${req.clientIp}`;
25
26 app.audit.apply(null, [source].concat(Array.prototype.slice.call(arguments)));
27 };
28 res.success = success.bind(null, res);
29 res.error = error.bind(null, res);
30 res.reject = reject.bind(null, res);
31 res.resolve = resolve.bind(null, res);
32 next();
33 }
34}
35
36module.exports = bootstrap;