Ghost/core/server/middleware/cache-control.js
kirrg001 78ac63d8ad 🎨 add cache control configurations into the default config
refs #7488

- cache control can be overridden if needed
2017-05-31 16:12:11 +01:00

38 lines
1.1 KiB
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'),
config = require('../config'),
cacheControl;
cacheControl = function cacheControl(options) {
/*jslint unparam:true*/
var profiles = {
public: 'public, max-age=' + config.get('caching:frontend:maxAge'),
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;