@tlrg/middleware-js
Version:
Node module for sharing common middlewares.
33 lines (23 loc) • 872 B
JavaScript
var _ = require('lodash');
function getFeatureSwitches(request, response, next) {
var config = request.app.get('config') || {};
var clonedConfig = _.cloneDeep(config.featureSwitches);
request.params = request.params || {};
var queries = request.query || {};
var cookies = request.cookies || {};
Object.keys(clonedConfig).forEach(function (key) {
if (queries[key]) {
var value = queries[key] === 'true';
clonedConfig[key] = value;
response.cookie(key, value, {
domain: '.' + request.moonstick.domain
});
} else if (cookies[key]) {
clonedConfig[key] = cookies[key] === 'true';
}
});
request.moonstick = request.moonstick || {};
request.moonstick.featureSwitches = clonedConfig;
next();
}
module.exports = getFeatureSwitches;