11import EventEmitter from 'events' ;
2- import { ux } from '@contentstack/cli-utilities' ;
2+ import { cliux } from '@contentstack/cli-utilities' ;
33import { ApolloClient , ObservableQuery } from '@apollo/client/core' ;
4+ import { Ora } from 'ora' ;
45
56import { LogPollingInput , ConfigType } from '../types' ;
67import { deploymentQuery , deploymentLogsQuery , serverlessLogsQuery } from '../graphql' ;
@@ -14,6 +15,7 @@ export default class LogPolling {
1415 public deploymentStatus ! : string ;
1516 public startTime ! : number ;
1617 public endTime ! : number ;
18+ public loader ! : Ora | void ;
1719
1820 constructor ( params : LogPollingInput ) {
1921 const { apolloLogsClient, apolloManageClient, config, $event } = params ;
@@ -112,10 +114,11 @@ export default class LogPolling {
112114 ) : void {
113115 let timestamp : number = 0 ;
114116 logsWatchQuery . subscribe ( async ( { data, errors, error } ) => {
115- ux . action . start ( 'Loading deployment logs...' ) ;
116-
117+ if ( ! this . loader ) {
118+ this . loader = cliux . loaderV2 ( 'Loading deployment logs...' ) ;
119+ }
117120 if ( error ) {
118- ux . action . stop ( ) ;
121+ this . loader = cliux . loaderV2 ( 'done' , this . loader ) ;
119122 this . $event . emit ( 'deployment-logs' , {
120123 message : error ?. message ,
121124 msgType : 'error' ,
@@ -127,7 +130,7 @@ export default class LogPolling {
127130 logsWatchQuery . stopPolling ( ) ;
128131 }
129132 if ( errors ?. length && data === null ) {
130- ux . action . stop ( ) ;
133+ this . loader = cliux . loaderV2 ( 'done' , this . loader ) ;
131134 this . $event . emit ( 'deployment-logs' , {
132135 message : errors ,
133136 msgType : 'error' ,
@@ -141,7 +144,7 @@ export default class LogPolling {
141144 if ( this . deploymentStatus ) {
142145 let logsData = data ?. getLogs ;
143146 if ( logsData ?. length ) {
144- ux . action . stop ( ) ;
147+ this . loader = cliux . loaderV2 ( 'done' , this . loader ) ;
145148 this . $event . emit ( 'deployment-logs' , {
146149 message : logsData ,
147150 msgType : 'info' ,
@@ -160,8 +163,11 @@ export default class LogPolling {
160163 message : 'DONE' ,
161164 msgType : 'debug' ,
162165 } ) ;
166+ if ( this . loader ) {
167+ this . loader = cliux . loaderV2 ( 'done' , this . loader ) ;
163168 }
164169 }
170+ }
165171 } ) ;
166172 }
167173
@@ -211,21 +217,23 @@ export default class LogPolling {
211217 > ,
212218 ) : void {
213219 serverLogsWatchQuery . subscribe ( ( { data, errors, error } ) => {
214- ux . action . start ( 'Loading server logs...' ) ;
220+ if ( ! this . loader ) {
221+ this . loader = cliux . loaderV2 ( 'Loading server logs...' ) ;
222+ }
215223 if ( error ) {
216- ux . action . stop ( ) ;
224+ this . loader = cliux . loaderV2 ( 'done' , this . loader ) ;
217225 this . $event . emit ( 'server-logs' , { message : error ?. message , msgType : 'error' } ) ;
218226 }
219227 if ( errors ?. length && data === null ) {
220- ux . action . stop ( ) ;
228+ this . loader = cliux . loaderV2 ( 'done' , this . loader ) ;
221229 this . $event . emit ( 'server-logs' , { message : errors , msgType : 'error' } ) ;
222230 serverLogsWatchQuery . stopPolling ( ) ;
223231 }
224232
225233 let logsData = data ?. getServerlessLogs ?. logs ;
226234 let logsLength = logsData ?. length ;
227235 if ( logsLength > 0 ) {
228- ux . action . stop ( ) ;
236+ this . loader = cliux . loaderV2 ( 'done' , this . loader ) ;
229237 this . $event . emit ( 'server-logs' , { message : logsData , msgType : 'info' } ) ;
230238 this . startTime = new Date ( logsData [ logsLength - 1 ] . timestamp ) . getTime ( ) + 1 ;
231239 this . endTime = this . startTime + 10 * 1000 ;
0 commit comments