Skip to content

Commit 5272aa3

Browse files
lusarzjohnjbarton
authored andcommitted
refactor(web-server): refactor lib/web-server to be more ES6 (#3034)
1 parent f47d901 commit 5272aa3

File tree

2 files changed

+43
-53
lines changed

2 files changed

+43
-53
lines changed

lib/server.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ const constant = require('./constants')
1717
const watcher = require('./watcher')
1818
const plugin = require('./plugin')
1919

20-
const ws = require('./web-server')
20+
const createWebServer = require('./web-server').createWebServer
2121
const preprocessor = require('./preprocessor')
2222
const Launcher = require('./launcher').Launcher
2323
const FileList = require('./file-list')
@@ -68,7 +68,7 @@ class Server extends KarmaEventEmitter {
6868
config: ['value', config],
6969
preprocess: ['factory', preprocessor.createPreprocessor],
7070
fileList: ['factory', FileList.factory],
71-
webServer: ['factory', ws.create],
71+
webServer: ['factory', createWebServer],
7272
socketServer: ['factory', createSocketIoServer],
7373
executor: ['factory', Executor.factory],
7474
// TODO(vojta): remove

lib/web-server.js

Lines changed: 41 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,45 @@
1-
var fs = require('graceful-fs')
2-
var http = require('http')
3-
var https = require('https')
4-
var path = require('path')
5-
var connect = require('connect')
6-
var Promise = require('bluebird')
7-
8-
var common = require('./middleware/common')
9-
var runnerMiddleware = require('./middleware/runner')
10-
var stopperMiddleware = require('./middleware/stopper')
11-
var stripHostMiddleware = require('./middleware/strip_host')
12-
var karmaMiddleware = require('./middleware/karma')
13-
var sourceFilesMiddleware = require('./middleware/source_files')
14-
var proxyMiddleware = require('./middleware/proxy')
15-
16-
var log = require('./logger').create('web-server')
17-
18-
var createCustomHandler = function (customFileHandlers, /* config.basePath */ basePath) {
1+
'use strict'
2+
3+
const fs = require('graceful-fs')
4+
const http = require('http')
5+
const https = require('https')
6+
const path = require('path')
7+
const connect = require('connect')
8+
const Promise = require('bluebird')
9+
10+
const common = require('./middleware/common')
11+
const runnerMiddleware = require('./middleware/runner')
12+
const stopperMiddleware = require('./middleware/stopper')
13+
const stripHostMiddleware = require('./middleware/strip_host')
14+
const karmaMiddleware = require('./middleware/karma')
15+
const sourceFilesMiddleware = require('./middleware/source_files')
16+
const proxyMiddleware = require('./middleware/proxy')
17+
18+
const log = require('./logger').create('web-server')
19+
20+
function createCustomHandler (customFileHandlers, config) {
1921
return function (request, response, next) {
20-
for (var i = 0; i < customFileHandlers.length; i++) {
21-
if (customFileHandlers[i].urlRegex.test(request.url)) {
22-
return customFileHandlers[i].handler(request, response, 'fake/static', 'fake/adapter',
23-
basePath, 'fake/root')
24-
}
25-
}
26-
27-
return next()
22+
const handler = customFileHandlers.find((handler) => handler.urlRegex.test(request.url))
23+
return handler
24+
? handler.handler(request, response, 'fake/static', 'fake/adapter', config.basePath, 'fake/root')
25+
: next()
2826
}
2927
}
3028

31-
createCustomHandler.$inject = ['customFileHandlers', 'config.basePath']
29+
createCustomHandler.$inject = ['customFileHandlers', 'config']
3230

33-
var createWebServer = function (injector, emitter, fileList) {
34-
var config = injector.get('config')
31+
function createWebServer (injector, emitter, fileList) {
32+
const config = injector.get('config')
3533
common.initializeMimeTypes(config)
36-
var serveStaticFile = common.createServeFile(fs, path.normalize(path.join(__dirname, '/../static')), config)
37-
var serveFile = common.createServeFile(fs, null, config)
38-
var filesPromise = new common.PromiseContainer()
34+
const serveStaticFile = common.createServeFile(fs, path.normalize(path.join(__dirname, '/../static')), config)
35+
const serveFile = common.createServeFile(fs, null, config)
36+
const filesPromise = new common.PromiseContainer()
3937

4038
// Set an empty list of files to avoid race issues with
4139
// file_list_modified not having been emitted yet
4240
filesPromise.set(Promise.resolve(fileList.files))
4341

44-
emitter.on('file_list_modified', function (files) {
45-
filesPromise.set(Promise.resolve(files))
46-
})
42+
emitter.on('file_list_modified', (files) => filesPromise.set(Promise.resolve(files)))
4743

4844
// locals for webserver module
4945
// NOTE(vojta): figure out how to do this with DI
@@ -53,15 +49,13 @@ var createWebServer = function (injector, emitter, fileList) {
5349
filesPromise: ['value', filesPromise]
5450
}])
5551

56-
var proxyMiddlewareInstance = injector.invoke(proxyMiddleware.create)
52+
const proxyMiddlewareInstance = injector.invoke(proxyMiddleware.create)
5753

5854
log.debug('Instantiating middleware')
59-
var handler = connect()
55+
const handler = connect()
6056

6157
if (config.beforeMiddleware) {
62-
config.beforeMiddleware.forEach(function (middleware) {
63-
handler.use(injector.get('middleware:' + middleware))
64-
})
58+
config.beforeMiddleware.forEach((middleware) => handler.use(injector.get('middleware:' + middleware)))
6559
}
6660

6761
handler.use(injector.invoke(runnerMiddleware.create))
@@ -76,17 +70,13 @@ var createWebServer = function (injector, emitter, fileList) {
7670
handler.use(injector.invoke(createCustomHandler))
7771

7872
if (config.middleware) {
79-
config.middleware.forEach(function (middleware) {
80-
handler.use(injector.get('middleware:' + middleware))
81-
})
73+
config.middleware.forEach((middleware) => handler.use(injector.get('middleware:' + middleware)))
8274
}
8375

84-
handler.use(function (request, response) {
85-
common.serve404(response, request.url)
86-
})
76+
handler.use((request, response) => common.serve404(response, request.url))
8777

88-
var serverClass = http
89-
var serverArguments = [handler]
78+
let serverClass = http
79+
const serverArguments = [handler]
9080

9181
if (config.protocol === 'https:') {
9282
serverClass = https
@@ -97,7 +87,7 @@ var createWebServer = function (injector, emitter, fileList) {
9787
serverClass = config.httpModule
9888
}
9989

100-
var server = serverClass.createServer.apply(null, serverArguments)
90+
const server = serverClass.createServer.apply(null, serverArguments)
10191

10292
server.on('upgrade', function (req, socket, head) {
10393
log.debug('upgrade %s', req.url)
@@ -107,5 +97,5 @@ var createWebServer = function (injector, emitter, fileList) {
10797
return server
10898
}
10999

110-
// PUBLIC API
111-
exports.create = createWebServer
100+
createWebServer.$inject = ['injector', 'emitter', 'fileList']
101+
exports.createWebServer = createWebServer

0 commit comments

Comments
 (0)