You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
822 B
JavaScript

var continuationLocalStorage = require('continuation-local-storage');
var NAMESPACE = 'nodebb';
var namespace = continuationLocalStorage.createNamespace(NAMESPACE);
var cls = function (req, res, next) {
namespace.run(function() {
var value = {req: req};
if (process.env.NODE_ENV == 'development') {
value.audit = {created: process.hrtime()};
}
namespace.set('route', {
req: req,
res: res
});
next();
});
};
cls.storage = function () {
return cls.getNamespace(NAMESPACE);
};
cls.get = function (key) {
return namespace.get(key);
};
cls.set = function (key, value) {
return namespace.set(key, value);
};
cls.setItem = cls.set;
cls.getItem = cls.set;
cls.getNamespace = cls.storage;
cls.namespace = namespace;
cls.continuationLocalStorage = continuationLocalStorage;
module.exports = cls;