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 ) {
19
21
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 ( )
28
26
}
29
27
}
30
28
31
- createCustomHandler . $inject = [ 'customFileHandlers' , 'config.basePath ' ]
29
+ createCustomHandler . $inject = [ 'customFileHandlers' , 'config' ]
32
30
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' )
35
33
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 ( )
39
37
40
38
// Set an empty list of files to avoid race issues with
41
39
// file_list_modified not having been emitted yet
42
40
filesPromise . set ( Promise . resolve ( fileList . files ) )
43
41
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 ) ) )
47
43
48
44
// locals for webserver module
49
45
// NOTE(vojta): figure out how to do this with DI
@@ -53,15 +49,13 @@ var createWebServer = function (injector, emitter, fileList) {
53
49
filesPromise : [ 'value' , filesPromise ]
54
50
} ] )
55
51
56
- var proxyMiddlewareInstance = injector . invoke ( proxyMiddleware . create )
52
+ const proxyMiddlewareInstance = injector . invoke ( proxyMiddleware . create )
57
53
58
54
log . debug ( 'Instantiating middleware' )
59
- var handler = connect ( )
55
+ const handler = connect ( )
60
56
61
57
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 ) ) )
65
59
}
66
60
67
61
handler . use ( injector . invoke ( runnerMiddleware . create ) )
@@ -76,17 +70,13 @@ var createWebServer = function (injector, emitter, fileList) {
76
70
handler . use ( injector . invoke ( createCustomHandler ) )
77
71
78
72
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 ) ) )
82
74
}
83
75
84
- handler . use ( function ( request , response ) {
85
- common . serve404 ( response , request . url )
86
- } )
76
+ handler . use ( ( request , response ) => common . serve404 ( response , request . url ) )
87
77
88
- var serverClass = http
89
- var serverArguments = [ handler ]
78
+ let serverClass = http
79
+ const serverArguments = [ handler ]
90
80
91
81
if ( config . protocol === 'https:' ) {
92
82
serverClass = https
@@ -97,7 +87,7 @@ var createWebServer = function (injector, emitter, fileList) {
97
87
serverClass = config . httpModule
98
88
}
99
89
100
- var server = serverClass . createServer . apply ( null , serverArguments )
90
+ const server = serverClass . createServer . apply ( null , serverArguments )
101
91
102
92
server . on ( 'upgrade' , function ( req , socket , head ) {
103
93
log . debug ( 'upgrade %s' , req . url )
@@ -107,5 +97,5 @@ var createWebServer = function (injector, emitter, fileList) {
107
97
return server
108
98
}
109
99
110
- // PUBLIC API
111
- exports . create = createWebServer
100
+ createWebServer . $inject = [ 'injector' , 'emitter' , 'fileList' ]
101
+ exports . createWebServer = createWebServer
0 commit comments