From 08292b7c87afc03e4b0e98d30754a96984f4fc1d Mon Sep 17 00:00:00 2001 From: MICHAEL JACKSON <mjijackson@gmail.com> Date: Tue, 15 Aug 2017 15:17:34 -0700 Subject: [PATCH] Cache redirects for 1 minute --- server/middleware/fetchPackage.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/server/middleware/fetchPackage.js b/server/middleware/fetchPackage.js index 5afbf77..85999d8 100644 --- a/server/middleware/fetchPackage.js +++ b/server/middleware/fetchPackage.js @@ -35,12 +35,20 @@ function fetchPackage(req, res, next) { } }) } else if (req.packageVersion in tags) { - res.redirect(PackageURL.create(req.packageName, tags[req.packageVersion], req.filename, req.search)) + // Cache tag redirects for 1 minute. + res.set({ + 'Cache-Control': 'public, max-age=60', + 'Cache-Tag': 'redirect' + }).redirect(PackageURL.create(req.packageName, tags[req.packageVersion], req.filename, req.search)) } else { const maxVersion = semver.maxSatisfying(Object.keys(versions), req.packageVersion) if (maxVersion) { - res.redirect(PackageURL.create(req.packageName, maxVersion, req.filename, req.search)) + // Cache semver redirects for 1 minute. + res.set({ + 'Cache-Control': 'public, max-age=60', + 'Cache-Tag': 'redirect' + }).redirect(PackageURL.create(req.packageName, maxVersion, req.filename, req.search)) } else { res.status(404).type('text').send(`Cannot find package ${req.packageSpec}`) }