json-restructure
Version:
A TypeScript library for repairing malformed JSON strings
37 lines • 1.32 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseJson = void 0;
const types_1 = require("./types");
function parseJson(jsonString) {
try {
return JSON.parse(jsonString);
}
catch (error) {
if (error instanceof SyntaxError) {
const { message, lineNumber, columnNumber } = extractErrorDetails(error);
throw new types_1.JsonParseError(message, lineNumber, columnNumber);
}
throw error;
}
}
exports.parseJson = parseJson;
function extractErrorDetails(error) {
const match = /^Unexpected token (.) in JSON at position (\d+)$/m.exec(error.message);
if (match) {
const [, unexpectedToken, position] = match;
const lineNumber = +error.message.slice(0, +position).split('\n').length;
const line = error.message.split('\n')[lineNumber - 1];
const columnNumber = line.indexOf(unexpectedToken) + 1;
return {
message: `Unexpected token '${unexpectedToken}' in JSON at line ${lineNumber}, column ${columnNumber}`,
lineNumber,
columnNumber,
};
}
return {
message: error.message,
lineNumber: -1,
columnNumber: -1,
};
}
//# sourceMappingURL=jsonParser.js.map
;