Parsed log lines by unescaping characters and parsing JSON strings.

This commit is contained in:
Benjamin Arntzen
2024-06-27 07:17:53 +01:00
committed by Benjamin Arntzen (aider)
parent c5e0f32d33
commit a3afac604b
+17 -2
View File
@@ -105,7 +105,7 @@ function parseLogLines(data) {
logLines.forEach((line, index) => {
if (line.trim() !== '') {
try {
let unescapedLine = line.replace(/\\\\"/g, '\\"');
let unescapedLine = line.replace(/\\\\"/g, '"');
unescapedLine = unescapedLine.replace(/\\n/g, '\n');
unescapedLine = unescapedLine.replace(/\\t/g, '\t');
unescapedLine = unescapedLine.replace(/\\r/g, '\r');
@@ -113,7 +113,22 @@ function parseLogLines(data) {
unescapedLine = unescapedLine.replace(/\\&/g, '&');
unescapedLine = unescapedLine.replace(/\\b/g, '\b');
unescapedLine = unescapedLine.replace(/\\f/g, '\f');
const parsedLog = JSON.parse(unescapedLine, (key, value) => {
// Remove the wrapping quotes from the JSON string
unescapedLine = unescapedLine.replace(/^"|"$/g, '');
// Replace escaped double quotes with unescaped double quotes
unescapedLine = unescapedLine.replace(/\\"/g, '"');
// Replace escaped backslashes with a single backslash
unescapedLine = unescapedLine.replace(/\\\\/g, '\\');
// Now parse the JSON
const parsedLog = JSON.parse(unescapedLine);
validLogs.push(parsedLog);
} catch (parseError) {
console.error(`Error parsing log line at index ${index}: ${parseError.message}`);
}
}
});
return validLogs;
if (typeof value === 'string') {
try {
return JSON.parse(value);