@@ -16,6 +16,9 @@ import argsUtils from './util/args'
1616import  {  telemetry  }  from  '@packages/telemetry' 
1717import  {  getCtx ,  hasCtx  }  from  '@packages/data-context' 
1818import  {  warning  as  errorsWarning  }  from  './errors' 
19+ import  pkg  from  '@packages/root' 
20+ import  {  info  }  from  './modes/info' 
21+ import  {  toNumber  }  from  'lodash' 
1922
2023const  debug  =  Debug ( 'cypress:server:cypress' ) 
2124
@@ -206,74 +209,85 @@ export = {
206209    } ) 
207210  } , 
208211
209-   startInMode  ( mode : Mode ,  options : any )  { 
212+     async   startInMode  ( mode : Mode ,  options : any )  { 
210213    debug ( 'starting in mode %s with options %o' ,  mode ,  options ) 
211214
212215    switch  ( mode )  { 
213216      case  'version' :
214-         return  require ( './modes/pkg' ) ( options ) 
215-         . get ( 'version' ) 
216-         . then ( ( version : any )  =>  { 
217-           return  console . log ( version )  // eslint-disable-line no-console 
218-         } ) . then ( exit0 ) 
219-         . catch ( exitErr ) 
217+         try  { 
218+           console . log ( pkg . version ) // eslint-disable-line no-console 
220219
220+           return  exit0 ( ) 
221+         }  catch  ( err )  { 
222+           return  exitErr ( err ) 
223+         } 
221224      case  'info' :
222-         return  require ( './modes/info' ) ( options ) 
223-         . then ( exit0 ) 
224-         . catch ( exitErr ) 
225+         try  { 
226+           await  info ( ) 
225227
228+           return  exit0 ( ) 
229+         }  catch  ( err )  { 
230+           return  exitErr ( err ) 
231+         } 
226232      case  'smokeTest' :
227-         return  this . runElectron ( mode ,  options ) 
228-         . then ( ( pong : any )  =>  { 
233+         try  { 
234+           const  pong  =  await  this . runElectron ( mode ,  options ) 
235+ 
229236          if  ( ! this . isCurrentlyRunningElectron ( ) )  { 
230-             return  pong 
237+             return  exit ( pong ) 
231238          } 
232239
233240          if  ( pong  ===  options . ping )  { 
234-             return  0 
241+             return  exit ( 0 ) 
235242          } 
236243
237-           return  1 
238-         } ) . then ( exit ) 
239-         . catch ( exitErr ) 
244+           return  exit ( 1 ) 
245+         }  catch  ( err )  { 
246+           return  exitErr ( err ) 
247+         } 
240248
241249      case  'returnPkg' :
242-         return  require ( './modes/pkg' ) ( options ) 
243-         . then ( ( pkg : any )  =>  { 
244-           return  console . log ( JSON . stringify ( pkg ) )  // eslint-disable-line no-console 
245-         } ) . then ( exit0 ) 
246-         . catch ( exitErr ) 
250+         try  { 
251+           console . log ( JSON . stringify ( pkg ) )  // eslint-disable-line no-console 
252+ 
253+           return  exit0 ( ) 
254+         }  catch  ( err )  { 
255+           return  exitErr ( err ) 
256+         } 
247257
248258      case  'exitWithCode' :
249-         return  require ( './modes/exit' ) ( options ) 
250-         . then ( exit ) 
251-         . catch ( exitErr ) 
259+         try  { 
260+           const  exitCode  =  toNumber ( options . exitWithCode ) 
252261
262+           return  exit ( exitCode ) 
263+         }  catch  ( err )  { 
264+           return  exitErr ( err ) 
265+         } 
253266      case  'run' :
254267        // run headlessly and exit 
255268        // with num of totalFailed 
256-         return  this . runElectron ( mode ,  options ) 
257-         . then ( ( results : any )  =>  { 
269+         try  { 
270+         const  results  =  await  this . runElectron ( mode ,  options ) 
271+ 
258272          if  ( results . runs )  { 
259273            const  isCanceled  =  results . runs . filter ( ( run )  =>  run . skippedSpec ) . length 
260274
261275            if  ( isCanceled )  { 
262276              // eslint-disable-next-line no-console 
263277              console . log ( require ( 'chalk' ) . magenta ( '\n  Exiting with non-zero exit code because the run was canceled.' ) ) 
264278
265-               return  1 
279+               return  exit ( 1 ) 
266280            } 
267281          } 
268282
269283          if  ( options . posixExitCodes )  { 
270-             return  results . totalFailed  ? 1  : 0 
284+             return  exit ( results . totalFailed  ? 1  : 0 ) 
271285          } 
272286
273-           return  results . totalFailed 
274-         } ) 
275-         . then ( exit ) 
276-         . catch ( exitErr ) 
287+           return  exit ( results . totalFailed ) 
288+         }   catch   ( err )   { 
289+            return   exitErr ( err ) 
290+         } 
277291
278292      case  'interactive' :
279293        return  this . runElectron ( mode ,  options ) 
0 commit comments