UNPKG

putout

Version:

the pluggable code transformer

45 lines (35 loc) 808 B
'use strict'; const parser = require('error-stack-parser'); module.exports.parseError = (e, {debug}) => { const {line, column} = e.loc || (debug ? getPosition(e) : { line: 1, column: 1, }); const rule = e.rule ? `${e.rule} (parser)` : 'parser'; const message = cutBrackets(e.message); return [{ rule, message, position: { line, column, }, }]; }; function cutBrackets(a) { const index = a.lastIndexOf('('); if (!~index) return a; return a.slice(0, index); } function getPosition(e) { const [stack] = parser.parse(e); const { lineNumber, columnNumber, } = stack; return { line: lineNumber, column: columnNumber, }; }