@@ -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,88 @@ 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 )
220-
217+ try {
218+ console . log ( pkg . version ) // eslint-disable-line no-console
219+ exit0 ( )
220+ } catch ( err ) {
221+ exitErr ( err )
222+ }
223+ break
221224 case 'info' :
222- return require ( './modes/info' ) ( options )
223- . then ( exit0 )
224- . catch ( exitErr )
225-
225+ try {
226+ await info ( )
227+ exit0 ( )
228+ } catch ( err ) {
229+ exitErr ( err )
230+ }
231+ break
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+ exitErr ( err )
247+ }
248+ break
240249
241250 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 )
251+ try {
252+ console . log ( JSON . stringify ( pkg ) ) // eslint-disable-line no-console
253+ exit0 ( )
254+ } catch ( err ) {
255+ exitErr ( err )
256+ }
257+ break
247258
248259 case 'exitWithCode' :
249- return require ( './modes/exit' ) ( options )
250- . then ( exit )
251- . catch ( exitErr )
260+ try {
261+ const exitCode = toNumber ( options . exitWithCode )
252262
263+ exit ( exitCode )
264+ } catch ( err ) {
265+ exitErr ( err )
266+ }
267+ break
253268 case 'run' :
254269 // run headlessly and exit
255270 // with num of totalFailed
256- return this . runElectron ( mode , options )
257- . then ( ( results : any ) => {
271+ try {
272+ const results = await this . runElectron ( mode , options )
273+
258274 if ( results . runs ) {
259275 const isCanceled = results . runs . filter ( ( run ) => run . skippedSpec ) . length
260276
261277 if ( isCanceled ) {
262278 // eslint-disable-next-line no-console
263279 console . log ( require ( 'chalk' ) . magenta ( '\n Exiting with non-zero exit code because the run was canceled.' ) )
264280
265- return 1
281+ return exit ( 1 )
266282 }
267283 }
268284
269285 if ( options . posixExitCodes ) {
270- return results . totalFailed ? 1 : 0
286+ return exit ( results . totalFailed ? 1 : 0 )
271287 }
272288
273- return results . totalFailed
274- } )
275- . then ( exit )
276- . catch ( exitErr )
289+ return exit ( results . totalFailed )
290+ } catch ( err ) {
291+ exitErr ( err )
292+ }
293+ break
277294
278295 case 'interactive' :
279296 return this . runElectron ( mode , options )
0 commit comments