ff73f1af92
no issue - update grunt-jscs dependency - fix deprecated `validateJSDoc` configuration - fix numerous linting errors, including: - use of future-reserved `public` and `private` variable names - use of `[]` instead of dot-notation (especially `express['static']` and `cacheRules['x']`) - extra spaces in `const { run } = Ember` style constructs One issue that did become apparent is that there are conflicting rules that prevent the use of object function shorthand such that both of these: ``` { myFunc() {} } { myFunc () {} } ``` are called out due to either the missing or the extra space before the `(`
37 lines
1004 B
JavaScript
37 lines
1004 B
JavaScript
// # CacheControl Middleware
|
|
// Usage: cacheControl(profile), where profile is one of 'public' or 'private'
|
|
// After: checkIsPrivate
|
|
// Before: routes
|
|
// App: Admin|Blog|API
|
|
//
|
|
// Allows each app to declare its own default caching rules
|
|
|
|
var _ = require('lodash'),
|
|
cacheControl;
|
|
|
|
cacheControl = function cacheControl(options) {
|
|
/*jslint unparam:true*/
|
|
var profiles = {
|
|
public: 'public, max-age=0',
|
|
private: 'no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0'
|
|
},
|
|
output;
|
|
|
|
if (_.isString(options) && profiles.hasOwnProperty(options)) {
|
|
output = profiles[options];
|
|
}
|
|
|
|
return function cacheControlHeaders(req, res, next) {
|
|
if (output) {
|
|
if (res.isPrivateBlog) {
|
|
res.set({'Cache-Control': profiles.private});
|
|
} else {
|
|
res.set({'Cache-Control': output});
|
|
}
|
|
}
|
|
next();
|
|
};
|
|
};
|
|
|
|
module.exports = cacheControl;
|