@@ -3,23 +3,23 @@ const path = require('path');
3
3
const tcpPortUsed = require ( 'tcp-port-used' ) ;
4
4
function getPortFromArgs ( args ) {
5
5
let port = 9515 ;
6
- if ( ! args ) {
6
+ if ( ! args )
7
7
return port ;
8
- }
9
8
const portRegexp = / - - p o r t = ( \d * ) / ;
10
9
const portArg = args . find ( function ( arg ) {
11
10
return portRegexp . test ( arg ) ;
12
11
} ) ;
13
- if ( portArg ) {
12
+ if ( portArg )
14
13
port = parseInt ( portRegexp . exec ( portArg ) [ 1 ] ) ;
15
- }
16
14
return port ;
17
15
}
18
16
process . env . PATH = path . join ( __dirname , 'chromedriver' ) + path . delimiter + process . env . PATH ;
19
- exports . path = process . platform === 'win32' ? path . join ( __dirname , 'chromedriver' , 'chromedriver.exe' ) : path . join ( __dirname , 'chromedriver' , 'chromedriver' ) ;
20
- exports . version = '119.0.6045.105' ;
21
- exports . start = function ( args , returnPromise ) {
22
- let command = exports . path ;
17
+ const crpath = process . platform === 'win32' ? path . join ( __dirname , 'chromedriver' , 'chromedriver.exe' ) : path . join ( __dirname , 'chromedriver' , 'chromedriver' ) ;
18
+ const version = '119.0.6045.105' ;
19
+ let defaultInstance = null ;
20
+
21
+ function start ( args , returnPromise ) {
22
+ let command = crpath ;
23
23
if ( ! fs . existsSync ( command ) ) {
24
24
console . log ( 'Could not find chromedriver in default path: ' , command ) ;
25
25
console . log ( 'Falling back to use global chromedriver bin' ) ;
@@ -28,20 +28,30 @@ exports.start = function (args, returnPromise) {
28
28
const cp = require ( 'child_process' ) . spawn ( command , args ) ;
29
29
cp . stdout . pipe ( process . stdout ) ;
30
30
cp . stderr . pipe ( process . stderr ) ;
31
- exports . defaultInstance = cp ;
32
- if ( ! returnPromise ) {
31
+ defaultInstance = cp ;
32
+ if ( ! returnPromise )
33
33
return cp ;
34
- }
35
34
const port = getPortFromArgs ( args ) ;
36
35
const pollInterval = 100 ;
37
36
const timeout = 10000 ;
38
37
return tcpPortUsed . waitUntilUsed ( port , pollInterval , timeout )
39
38
. then ( function ( ) {
40
39
return cp ;
41
40
} ) ;
42
- } ;
43
- exports . stop = function ( ) {
44
- if ( exports . defaultInstance != null ) {
45
- exports . defaultInstance . kill ( ) ;
41
+ }
42
+
43
+ function stop ( ) {
44
+ if ( defaultInstance != null )
45
+ defaultInstance . kill ( ) ;
46
+ defaultInstance = null ;
47
+ }
48
+
49
+ module . exports = {
50
+ path : crpath ,
51
+ version,
52
+ start,
53
+ stop,
54
+ get defaultInstance ( ) {
55
+ return defaultInstance ;
46
56
}
47
57
} ;
0 commit comments