1
1
'use strict' ;
2
+
3
+ const request = require ( "request" ) ,
4
+ fs = require ( "fs" ) ;
5
+
6
+ const cliProgress = require ( 'cli-progress' ) ;
7
+
2
8
const config = require ( "./config" ) ,
3
- request = require ( "request" ) ,
4
9
logger = require ( "./logger" ) . winstonLogger ,
5
10
Constants = require ( "./constants" ) ,
6
11
utils = require ( "./utils" ) ;
@@ -16,11 +21,29 @@ const uploadSuits = (bsConfig, filePath, opts) => {
16
21
return resolve ( { } ) ;
17
22
}
18
23
19
- logger . info ( opts . messages . uploading ) ;
24
+ let size = fs . lstatSync ( filePath ) . size ;
25
+
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` ,
29
+ hideCursor : true ,
30
+ } ) ;
31
+
32
+ bar1 . start ( 100 , 0 , {
33
+ speed : "N/A"
34
+ } ) ;
35
+
36
+ bar1 . on ( 'start' , ( ) => {
37
+ } ) ;
38
+
39
+ bar1 . on ( 'stop' , ( ) => {
40
+ } ) ;
20
41
21
42
let options = utils . generateUploadParams ( bsConfig , filePath , opts . md5Data , opts . fileDetails )
22
43
let responseData = null ;
23
- request . post ( options , function ( err , resp , body ) {
44
+ var r = request . post ( options , function ( err , resp , body ) {
45
+ clearInterval ( q ) ;
46
+
24
47
if ( err ) {
25
48
reject ( err ) ;
26
49
} else {
@@ -52,13 +75,26 @@ const uploadSuits = (bsConfig, filePath, opts) => {
52
75
}
53
76
}
54
77
} else {
78
+ bar1 . update ( 100 , {
79
+ speed : ( ( size / ( Date . now ( ) - startTime ) ) / 125 ) . toFixed ( 2 ) //kbits per sec
80
+ } ) ;
81
+ bar1 . stop ( ) ;
55
82
logger . info ( `${ opts . messages . uploadingSuccess } (${ responseData [ opts . md5ReturnKey ] } )` ) ;
56
83
opts . cleanupMethod ( ) ;
57
84
responseData [ "time" ] = Date . now ( ) - startTime ;
58
85
resolve ( responseData ) ;
59
86
}
60
87
}
61
88
} ) ;
89
+
90
+ var q = setInterval ( function ( ) {
91
+ let dispatched = r . req . connection . _bytesDispatched ;
92
+ let percent = dispatched * 100.0 / size ;
93
+ bar1 . update ( percent , {
94
+ speed : ( ( dispatched / ( Date . now ( ) - startTime ) ) / 125 ) . toFixed ( 2 ) //kbits per sec
95
+ } ) ;
96
+ } , 150 ) ;
97
+
62
98
} ) ;
63
99
}
64
100
@@ -68,6 +104,15 @@ const uploadCypressZip = (bsConfig, md5data, packageData) => {
68
104
let obj = { }
69
105
const zipOptions = utils . generateUploadOptions ( 'zip' , md5data , packageData ) ;
70
106
const npmOptions = utils . generateUploadOptions ( 'npm' , md5data , packageData ) ;
107
+
108
+ if ( ! zipOptions . urlPresent && zipOptions . archivePresent ) {
109
+ logger . info ( zipOptions . messages . uploading ) ;
110
+ }
111
+
112
+ if ( ! npmOptions . urlPresent && npmOptions . archivePresent ) {
113
+ logger . info ( npmOptions . messages . uploading ) ;
114
+ }
115
+
71
116
let zipUpload = uploadSuits ( bsConfig , config . fileName , zipOptions ) ;
72
117
let npmPackageUpload = uploadSuits ( bsConfig , config . packageFileName , npmOptions ) ;
73
118
Promise . all ( [ zipUpload , npmPackageUpload ] ) . then ( function ( uploads ) {
0 commit comments