1
0
mirror of https://github.com/JuanCanham/HackMyResume.git synced 2025-05-10 07:47:07 +01:00

Improve error handling.

This commit is contained in:
hacksalot
2016-01-18 17:13:37 -05:00
parent 3e3803ed85
commit c98d05270e
7 changed files with 105 additions and 86 deletions

View File

@ -59,8 +59,10 @@ Error-handling routines for HackMyResume.
));
// Output the stack (sometimes)
if( objError.showStack )
o( chalk.red( ex.stack || ex.inner.stack ) );
if( objError.withStack ) {
var stack = ex.stack || (ex.inner && ex.inner.stack);
stack && o( chalk.red( stack ) );
}
// Quit if necessary
if( objError.quit ) {
@ -101,6 +103,7 @@ Error-handling routines for HackMyResume.
function assembleError( ex ) {
var msg = '', withStack = false, isError = false, quit = true, warn = true;
if( this.debug ) withStack = true;
switch( ex.fluenterror ) {
@ -156,7 +159,15 @@ Error-handling routines for HackMyResume.
break;
case HMSTATUS.generateError:
console.log(ex);
msg = (ex.inner && ex.inner.toString()) || ex;
quit = false;
warn = false;
break;
case HMSTATUS.fileSaveError:
msg = printf( M2C( this.msgs.fileSaveError.msg ), (ex.inner || ex).toString() );
warn = false;
quit = false;
break;
case HMSTATUS.invalidFormat:
@ -184,6 +195,11 @@ Error-handling routines for HackMyResume.
warn = false;
break;
case HMSTATUS.mixedMerge:
msg = M2C( this.msgs.mixedMerge.msg );
quit = false;
break;
case HMSTATUS.parseError:
if( SyntaxErrorEx.is( ex.inner )) {
var se = new SyntaxErrorEx( ex, ex.raw );

View File

@ -82,3 +82,7 @@ errors:
msg: Invalid or corrupt JSON on line %s column %s.
invalidHelperUse:
msg: Invalid use of the **%s** theme helper.
fileSaveError:
msg: An error occurred while writing %s to disk: %s.
mixedMerge:
msg: "**Warning:** merging mixed resume types. Errors may occur."

View File

@ -97,13 +97,16 @@ Output routines for HackMyResume.
msg += printf(
((idx === 0) ?
this.msgs.beforeMerge.msg[0] :
this.msgs.beforeMerge.msg[1] ), a.i().file
this.msgs.beforeMerge.msg[1] ), a.file
);
}, this);
L( M2C(msg, 'green') );
L( M2C(msg, evt.mixed ? 'yellow' : 'green') );
break;
case HME.afterMerge:
break;
case HME.applyTheme:
var numFormats = Object.keys( this.theme.formats ).length;
L( M2C(this.msgs.afterMerge.msg, 'green'),
this.theme.name.toUpperCase(),