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}`)
       }