UNPKG

json-restructure

Version:

A TypeScript library for repairing malformed JSON strings

37 lines 1.32 kB
"use strict"; 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