Skip to content

Commit 9eda85e

Browse files
committed
Move options logic to module
1 parent e7d932a commit 9eda85e

File tree

2 files changed

+36
-29
lines changed

2 files changed

+36
-29
lines changed

lib/options.js

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
const appVersionCookieName = 'appVersion'
2+
3+
const getOptions = (req, options) => {
4+
const optionsFromReq = getOptionsFromReq(req, options)
5+
const extendedOptions = getExtendedOptions(optionsFromReq)
6+
return extendedOptions
7+
}
8+
9+
const getOptionsFromReq = (req, options) => {
10+
const version = getVersionFromReq(req) || options.version
11+
return Object.assign(options, {
12+
version
13+
})
14+
}
15+
16+
const getVersionFromReq = req => {
17+
const cookieHeader = req.headers.cookie
18+
if (!cookieHeader) return null
19+
const cookies = cookieHeader.split(';')
20+
if (!cookies) return null
21+
const cookie = cookies
22+
.map(c => c.split('='))
23+
.find(([n]) => n === appVersionCookieName)
24+
return cookie && cookie[1]
25+
}
26+
27+
const getExtendedOptions = options => {
28+
const { origin, version } = options
29+
return Object.assign(options, {
30+
root: [origin, version].filter(x => x).join('/')
31+
})
32+
}
33+
34+
module.exports = getOptions

lib/response.js

Lines changed: 2 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,11 @@
33
const { gzip } = require('zlib')
44

55
const getIndexContent = require('./content')
6-
7-
const appVersionCookieName = 'appVersion'
6+
const getOptions = require('./options')
87

98
const getResponse = (req, options, callback) => {
109
try {
11-
const optionsFromReq = getOptionsFromReq(req, options)
12-
const extendedOptions = getExtendedOptions(optionsFromReq)
10+
const extendedOptions = getOptions(req, options)
1311

1412
if (req.url === '/favicon.ico') {
1513
const favicon = createFaviconResponse(extendedOptions)
@@ -22,31 +20,6 @@ const getResponse = (req, options, callback) => {
2220
}
2321
}
2422

25-
const getOptionsFromReq = (req, options) => {
26-
const version = getVersionFromReq(req) || options.version
27-
return Object.assign(options, {
28-
version
29-
})
30-
}
31-
32-
const getVersionFromReq = req => {
33-
const cookieHeader = req.headers.cookie
34-
if (!cookieHeader) return null
35-
const cookies = cookieHeader.split(';')
36-
if (!cookies) return null
37-
const cookie = cookies
38-
.map(c => c.split('='))
39-
.find(([n]) => n === appVersionCookieName)
40-
return cookie && cookie[1]
41-
}
42-
43-
const getExtendedOptions = options => {
44-
const { origin, version } = options
45-
return Object.assign(options, {
46-
root: [origin, version].filter(x => x).join('/')
47-
})
48-
}
49-
5023
const getIndexResponse = (options, callback) => {
5124
getIndexContent(options, (err, content) => {
5225
if (err) return callback(err)

0 commit comments

Comments
 (0)