11'use strict' ;
2+
3+ const request = require ( "request" ) ,
4+ fs = require ( "fs" ) ;
5+
6+ const cliProgress = require ( 'cli-progress' ) ;
7+
28const config = require ( "./config" ) ,
3- request = require ( "request" ) ,
49 logger = require ( "./logger" ) . winstonLogger ,
510 Constants = require ( "./constants" ) ,
611 utils = require ( "./utils" ) ;
@@ -16,11 +21,29 @@ const uploadSuits = (bsConfig, filePath, opts) => {
1621 return resolve ( { } ) ;
1722 }
1823
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+ } ) ;
2041
2142 let options = utils . generateUploadParams ( bsConfig , filePath , opts . md5Data , opts . fileDetails )
2243 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+
2447 if ( err ) {
2548 reject ( err ) ;
2649 } else {
@@ -52,13 +75,26 @@ const uploadSuits = (bsConfig, filePath, opts) => {
5275 }
5376 }
5477 } else {
78+ bar1 . update ( 100 , {
79+ speed : ( ( size / ( Date . now ( ) - startTime ) ) / 125 ) . toFixed ( 2 ) //kbits per sec
80+ } ) ;
81+ bar1 . stop ( ) ;
5582 logger . info ( `${ opts . messages . uploadingSuccess } (${ responseData [ opts . md5ReturnKey ] } )` ) ;
5683 opts . cleanupMethod ( ) ;
5784 responseData [ "time" ] = Date . now ( ) - startTime ;
5885 resolve ( responseData ) ;
5986 }
6087 }
6188 } ) ;
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+
6298 } ) ;
6399}
64100
@@ -68,6 +104,15 @@ const uploadCypressZip = (bsConfig, md5data, packageData) => {
68104 let obj = { }
69105 const zipOptions = utils . generateUploadOptions ( 'zip' , md5data , packageData ) ;
70106 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+
71116 let zipUpload = uploadSuits ( bsConfig , config . fileName , zipOptions ) ;
72117 let npmPackageUpload = uploadSuits ( bsConfig , config . packageFileName , npmOptions ) ;
73118 Promise . all ( [ zipUpload , npmPackageUpload ] ) . then ( function ( uploads ) {
0 commit comments