Skip to content

Commit 67f4907

Browse files
committed
move is-archived-version into a function instead of middleware
1 parent dbcb3a5 commit 67f4907

4 files changed

Lines changed: 14 additions & 13 deletions

File tree

Original file line numberDiff line numberDiff line change
@@ -1,27 +1,27 @@
11
const patterns = require('../lib/patterns')
22
const { deprecated } = require('../lib/enterprise-server-releases')
33

4-
module.exports = async (req, res, next) => {
4+
module.exports = function isArchivedVersion (req) {
55
// if this is an assets path, use the referrer
66
// if this is a docs path, use the req.path
77
const pathToCheck = patterns.assetPaths.test(req.path)
88
? req.get('referrer')
99
: req.path
1010

1111
// ignore paths that don't have an enterprise version number
12-
if (!(patterns.getEnterpriseVersionNumber.test(pathToCheck) || patterns.getEnterpriseServerNumber.test(pathToCheck))) return next()
12+
if (!(patterns.getEnterpriseVersionNumber.test(pathToCheck) || patterns.getEnterpriseServerNumber.test(pathToCheck))) {
13+
return {}
14+
}
1315

1416
// extract enterprise version from path, e.g. 2.16
1517
const requestedVersion = pathToCheck.includes('enterprise-server@')
1618
? pathToCheck.match(patterns.getEnterpriseServerNumber)[1]
1719
: pathToCheck.match(patterns.getEnterpriseVersionNumber)[1]
1820

1921
// bail if the request version is not deprecated
20-
if (!deprecated.includes(requestedVersion)) return next()
22+
if (!deprecated.includes(requestedVersion)) {
23+
return {}
24+
}
2125

22-
// attach convenience props
23-
req.isArchivedVersion = true
24-
req.requestedVersion = requestedVersion
25-
26-
return next()
26+
return { isArchived: true, requestedVersion }
2727
}

middleware/archived-enterprise-versions-assets.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
const path = require('path')
22
const patterns = require('../lib/patterns')
3+
const isArchivedVersion = require('../lib/is-archived-version')
34
const got = require('got')
45

56
// This module handles requests for the CSS and JS assets for
@@ -9,8 +10,8 @@ const got = require('got')
910
// See also ./archived-enterprise-versions.js for non-CSS/JS paths
1011

1112
module.exports = async (req, res, next) => {
12-
if (!req.isArchivedVersion) return next()
13-
const requestedVersion = req.requestedVersion
13+
const { isArchived, requestedVersion } = isArchivedVersion(req)
14+
if (!isArchived) return next()
1415

1516
// Only match asset paths
1617
if (!patterns.assetPaths.test(req.path)) return next()

middleware/archived-enterprise-versions.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ const slash = require('slash')
33
const { latest, firstVersionDeprecatedOnNewSite, lastVersionWithoutStubbedRedirectFiles } = require('../lib/enterprise-server-releases')
44
const patterns = require('../lib/patterns')
55
const versionSatisfiesRange = require('../lib/version-satisfies-range')
6+
const isArchivedVersion = require('../lib/is-archived-version')
67
const got = require('got')
78
const findPage = require('../lib/find-page')
89

@@ -11,8 +12,8 @@ const findPage = require('../lib/find-page')
1112
// https://github.com/github/help-docs-archived-enterprise-versions
1213

1314
module.exports = async (req, res, next) => {
14-
if (!req.isArchivedVersion) return next()
15-
const requestedVersion = req.requestedVersion
15+
const { isArchived, requestedVersion } = isArchivedVersion(req)
16+
if (!isArchived) return next()
1617

1718
// Skip asset paths
1819
if (patterns.assetPaths.test(req.path)) return next()

middleware/index.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@ module.exports = function (app) {
5454

5555
// *** Rendering, 2xx responses ***
5656
// I largely ordered these by use frequency
57-
app.use(require('./is-archived-version')) // Must come before archived-enterprise-versions* middleware
5857
app.use(require('./archived-enterprise-versions-assets')) // Must come before static/assets
5958
app.use('/dist', express.static('dist'))
6059
app.use('/assets', express.static('assets'))

0 commit comments

Comments
 (0)