@@ -10,9 +10,9 @@ const config = require("./config"),
10
10
Constants = require ( "./constants" ) ,
11
11
utils = require ( "./utils" ) ;
12
12
13
- const uploadSuits = ( bsConfig , filePath , opts ) => {
13
+ const uploadSuits = ( bsConfig , filePath , opts , obj ) => {
14
14
return new Promise ( function ( resolve , reject ) {
15
- let startTime = Date . now ( ) ;
15
+ obj . startTime = Date . now ( ) ;
16
16
17
17
if ( opts . urlPresent ) {
18
18
return resolve ( { [ opts . md5ReturnKey ] : opts . url } ) ;
@@ -21,28 +21,26 @@ const uploadSuits = (bsConfig, filePath, opts) => {
21
21
return resolve ( { } ) ;
22
22
}
23
23
24
- let size = fs . lstatSync ( filePath ) . size ;
24
+ let size = obj . size ;
25
25
26
26
// create new progress bar
27
- let bar1 = new cliProgress . SingleBar ( {
28
- format : `${ filePath } [{bar}] {percentage}% | ETA: {eta}s | Speed: {speed} kbps | Duration: {duration}s [${ ( size / 1000000 ) . toFixed ( 2 ) } MB]` ,
29
- hideCursor : true ,
27
+ obj . bar1 = new cliProgress . SingleBar ( {
28
+ format : `${ filePath } [{bar}] {percentage}% | ETA: {eta}s | Speed: {speed} kbps | Duration: {duration}s [${ ( size / 1000000 ) . toFixed ( 2 ) } MB]`
30
29
} ) ;
31
30
32
- bar1 . start ( 100 , 0 , {
31
+ obj . bar1 . start ( 100 , 0 , {
33
32
speed : "N/A"
34
33
} ) ;
35
34
36
- bar1 . on ( 'start' , ( ) => {
35
+ obj . bar1 . on ( 'start' , ( ) => {
37
36
} ) ;
38
37
39
- bar1 . on ( 'stop' , ( ) => {
38
+ obj . bar1 . on ( 'stop' , ( ) => {
40
39
} ) ;
41
40
42
41
let options = utils . generateUploadParams ( bsConfig , filePath , opts . md5Data , opts . fileDetails )
43
42
let responseData = null ;
44
43
var r = request . post ( options , function ( err , resp , body ) {
45
- clearInterval ( q ) ;
46
44
47
45
if ( err ) {
48
46
reject ( err ) ;
@@ -55,7 +53,7 @@ const uploadSuits = (bsConfig, filePath, opts) => {
55
53
if ( resp . statusCode != 200 ) {
56
54
if ( resp . statusCode == 401 ) {
57
55
if ( responseData && responseData [ "error" ] ) {
58
- responseData [ "time" ] = Date . now ( ) - startTime ;
56
+ responseData [ "time" ] = Date . now ( ) - obj . startTime ;
59
57
return reject ( responseData [ "error" ] ) ;
60
58
} else {
61
59
return reject ( Constants . validationMessages . INVALID_DEFAULT_AUTH_PARAMS ) ;
@@ -65,7 +63,7 @@ const uploadSuits = (bsConfig, filePath, opts) => {
65
63
return resolve ( { } ) ;
66
64
}
67
65
if ( responseData && responseData [ "error" ] ) {
68
- responseData [ "time" ] = Date . now ( ) - startTime ;
66
+ responseData [ "time" ] = Date . now ( ) - obj . startTime ;
69
67
reject ( responseData [ "error" ] ) ;
70
68
} else {
71
69
if ( resp . statusCode == 413 ) {
@@ -75,30 +73,35 @@ const uploadSuits = (bsConfig, filePath, opts) => {
75
73
}
76
74
}
77
75
} else {
78
- bar1 . update ( 100 , {
79
- speed : ( ( size / ( Date . now ( ) - startTime ) ) / 125 ) . toFixed ( 2 ) //kbits per sec
80
- } ) ;
81
- bar1 . stop ( ) ;
76
+ purgeUploadBar ( obj ) ;
82
77
logger . info ( `${ opts . messages . uploadingSuccess } (${ responseData [ opts . md5ReturnKey ] } )` ) ;
83
78
opts . cleanupMethod ( ) ;
84
- responseData [ "time" ] = Date . now ( ) - startTime ;
79
+ responseData [ "time" ] = Date . now ( ) - obj . startTime ;
85
80
resolve ( responseData ) ;
86
81
}
87
82
}
88
83
} ) ;
89
84
90
- var q = setInterval ( function ( ) {
85
+ obj . zipInterval = setInterval ( function ( ) {
91
86
let dispatched = r . req . connection . _bytesDispatched ;
92
87
let percent = dispatched * 100.0 / size ;
93
- bar1 . update ( percent , {
94
- speed : ( ( dispatched / ( Date . now ( ) - startTime ) ) / 125 ) . toFixed ( 2 ) //kbits per sec
88
+ obj . bar1 . update ( percent , {
89
+ speed : ( ( dispatched / ( Date . now ( ) - obj . startTime ) ) / 125 ) . toFixed ( 2 ) //kbits per sec
95
90
} ) ;
96
91
} , 150 ) ;
97
92
98
93
} ) ;
99
94
}
100
95
101
96
97
+ const purgeUploadBar = ( obj ) => {
98
+ obj . bar1 . update ( 100 , {
99
+ speed : ( ( obj . size / ( Date . now ( ) - obj . startTime ) ) / 125 ) . toFixed ( 2 ) //kbits per sec
100
+ } ) ;
101
+ obj . bar1 . stop ( ) ;
102
+ clearInterval ( obj . zipInterval ) ;
103
+ }
104
+
102
105
const uploadCypressZip = ( bsConfig , md5data , packageData ) => {
103
106
return new Promise ( function ( resolve , reject ) {
104
107
let obj = { }
@@ -116,8 +119,22 @@ const uploadCypressZip = (bsConfig, md5data, packageData) => {
116
119
logger . info ( npmOptions . messages . uploading ) ;
117
120
}
118
121
119
- let zipUpload = uploadSuits ( bsConfig , config . fileName , zipOptions ) ;
120
- let npmPackageUpload = uploadSuits ( bsConfig , config . packageFileName , npmOptions ) ;
122
+ var testZipUploadObj = {
123
+ bar1 : null ,
124
+ zipInterval : null ,
125
+ size : fs . existsSync ( config . fileName ) ? fs . lstatSync ( config . fileName ) . size : 0 ,
126
+ startTime : null
127
+ }
128
+
129
+ var npmPackageZipUploadObj = {
130
+ bar1 : null ,
131
+ zipInterval : null ,
132
+ size : fs . existsSync ( config . packageFileName ) ? fs . lstatSync ( config . packageFileName ) . size : 0 ,
133
+ startTime : null
134
+ }
135
+
136
+ let zipUpload = uploadSuits ( bsConfig , config . fileName , zipOptions , testZipUploadObj ) ;
137
+ let npmPackageUpload = uploadSuits ( bsConfig , config . packageFileName , npmOptions , npmPackageZipUploadObj ) ;
121
138
Promise . all ( [ zipUpload , npmPackageUpload ] ) . then ( function ( uploads ) {
122
139
uploads . forEach ( upload => {
123
140
if ( upload . zip_url && upload . time ) {
@@ -130,6 +147,8 @@ const uploadCypressZip = (bsConfig, md5data, packageData) => {
130
147
} ) ;
131
148
return resolve ( obj ) ;
132
149
} ) . catch ( ( error ) => {
150
+ purgeUploadBar ( testZipUploadObj ) ;
151
+ purgeUploadBar ( npmPackageZipUploadObj ) ;
133
152
return reject ( error ) ;
134
153
} )
135
154
} )
0 commit comments