(jsonString, maxLength)
| 198 | |
| 199 | // Modified processJsonString to handle arrays with size limit |
| 200 | function processJsonString(jsonString, maxLength) { |
| 201 | console.log("Processing string of length:", jsonString?.length); |
| 202 | try { |
| 203 | let parsed; |
| 204 | try { |
| 205 | parsed = JSON.parse(jsonString); |
| 206 | console.log( |
| 207 | "Successfully parsed as JSON, structure:", |
| 208 | JSON.stringify(Object.keys(parsed)) |
| 209 | ); |
| 210 | } catch (e) { |
| 211 | console.log("Not valid JSON, treating as string"); |
| 212 | return truncateStringsInData(jsonString, maxLength, 0, "root"); |
| 213 | } |
| 214 | |
| 215 | // If it's an array, process with size limit |
| 216 | if (Array.isArray(parsed)) { |
| 217 | console.log("Processing array of objects with size limit"); |
| 218 | const processed = processArrayWithSizeLimit( |
| 219 | parsed, |
| 220 | settings.maxLogSize, |
| 221 | (item) => truncateStringsInData(item, maxLength, 0, "root") |
| 222 | ); |
| 223 | const result = JSON.stringify(processed); |
| 224 | console.log( |
| 225 | `Processed array: ${parsed.length} -> ${processed.length} items` |
| 226 | ); |
| 227 | return result; |
| 228 | } |
| 229 | |
| 230 | // Otherwise process as before |
| 231 | const processed = truncateStringsInData(parsed, maxLength, 0, "root"); |
| 232 | const result = JSON.stringify(processed); |
| 233 | console.log("Processed JSON string length:", result.length); |
| 234 | return result; |
| 235 | } catch (e) { |
| 236 | console.error("Error in processJsonString:", e); |
| 237 | return jsonString.substring(0, maxLength) + "... (truncated)"; |
| 238 | } |
| 239 | } |
| 240 | |
| 241 | // Helper to send logs to browser-connector |
| 242 | async function sendToBrowserConnector(logData) { |
no test coverage detected