UNPKG

gemini

Version:
57 lines (46 loc) 1.41 kB
'use strict'; var chalk = require('chalk'), util = require('util'), GeminiError = require('../errors/gemini-error'); function handleErrors(error) { printErrorHeader(error); if (error instanceof GeminiError) { handleGeminiError(error); } else if (error.status === 13) { //unknow wd error handleUnknownWdError(error); } else { console.error(error.stack || error.message); } // exit code return 1; } function handleUncaughtExceptions() { process.on('uncaughtException', function(error) { process.exit(handleErrors(error)); }); } function printErrorHeader(e) { var message = [chalk.red('Critical error')]; if (e.state) { message.push(util.format('while running "%s"', e.state.fullName)); } if (e.browserId) { message.push(util.format('in %s', chalk.underline(e.browserId))); if (e.sessionId) { message.push(util.format('(%s)', chalk.yellow(e.sessionId))); } } console.error(message.join(' ') + ':'); } function handleGeminiError(error) { console.error(error.message); if (error.advice) { console.error(chalk.green('To fix:'), error.advice); } } function handleUnknownWdError(error) { console.error(error.cause.value.message); } exports.handleErrors = handleErrors; exports.handleUncaughtExceptions = handleUncaughtExceptions;