UNPKG

1.37 kBJavaScriptView Raw
1const connect = require('connect')
2const {hostOptions} = require('./middleware/hostOptions')
3const {logger} = require('./middleware/logger')
4const {allowCors} = require('./middleware/allowCors')
5const {allowedMethods} = require('./middleware/allowedMethods')
6const {serviceWorkerScope} = require('./middleware/serviceWorkerScope')
7
8const {resolveRequest} = require('./middleware/resolveRequest')
9const {resolveDependencies} = require('./middleware/resolveDependencies')
10const {serveResponse} = require('./middleware/serveResponse')
11const {serveDependencies} = require('./middleware/serveDependencies')
12const {serveFallback} = require('./middleware/serveFallback')
13
14const {errorHandler} = require('middleware-plain-error-handler')
15
16module.exports.app = (options, files) => {
17 const app = connect()
18
19 app.use(hostOptions(options, files))
20 app.use(logger(options.log))
21 app.use(allowedMethods(['GET', 'HEAD']))
22
23 app.use(resolveRequest())
24 app.use(resolveDependencies())
25
26 app.use(serviceWorkerScope())
27 app.use(allowCors())
28
29 app.use(serveResponse(options))
30 app.use(serveDependencies())
31 app.use(serveFallback(options))
32
33 app.use(errorHandler())
34
35 app.use((request, response) => {
36 if (request.httpVersionMajor === 2) {
37 // compatibility patch until proper fix lands pillarjs/finalhandler#15
38 response._header = true
39 }
40 })
41
42 return app
43}