@@ -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