@stryke/json
Version:
A package containing JSON parsing/stringify utilities used by Storm Software.
34 lines (32 loc) • 1.01 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
const require_utils_code_frames = require('./code-frames.cjs');
let jsonc_parser = require("jsonc-parser");
let lines_and_columns = require("lines-and-columns");
//#region src/utils/parse-error.ts
/**
* Nicely formats a JSON error with context
*
* @param input - JSON content as string
* @param parseError - jsonc ParseError
* @returns Formatted error message with context
*/
function formatParseError(input, parseError) {
const { error, offset, length } = parseError;
const result = new lines_and_columns.LinesAndColumns(input).locationForIndex(offset);
let line = result?.line ?? 0;
let column = result?.column ?? 0;
line++;
column++;
return `${(0, jsonc_parser.printParseErrorCode)(error)} in JSON at ${line}:${column}\n${require_utils_code_frames.codeFrameColumns(input, {
start: {
line,
column
},
end: {
line,
column: column + length
}
})}\n`;
}
//#endregion
exports.formatParseError = formatParseError;