1
0
mirror of https://github.com/JuanCanham/HackMyResume.git synced 2024-10-07 07:45:11 +01:00
HackMyResume/src/utils/syntax-error-ex.js
hacksalot fee21a7b17 Always use JSONLint for SyntaxError post-processing.
Remove the check for SyntaxError's built-in line and character
indicators and always re-parse on error to grab the line/column.
2016-01-10 05:17:28 -05:00

36 lines
905 B
JavaScript

/**
Definition of the SyntaxErrorEx class.
@module syntax-error-ex.js
@license MIT. See LICENSE.md for details.
*/
(function() {
/**
Represents a SyntaxError exception with line and column info.
Collect syntax error information from the provided exception object. The
JavaScript `SyntaxError` exception isn't interpreted uniformly across environ-
ments, so we reparse on error to grab the line and column.
See: http://stackoverflow.com/q/13323356
@class SyntaxErrorEx
*/
function SyntaxErrorEx( ex, rawData ) {
var lineNum = null, colNum = null;
var JSONLint = require('json-lint');
var lint = JSONLint( rawData, { comments: false } );
this.line = (lint.error ? lint.line : '???');
this.col = (lint.error ? lint.character : '???');
}
SyntaxErrorEx.is = function( ex ) {
return ex instanceof SyntaxError;
};
module.exports = SyntaxErrorEx;
}());