Skip to content

Commit 2d89f02

Browse files
committed
Instance: parseMessageData added catch on parse
1 parent 152e0e1 commit 2d89f02

File tree

1 file changed

+20
-3
lines changed

1 file changed

+20
-3
lines changed

src/instance/index.ts

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -342,16 +342,33 @@ export class SDKInstance {
342342
}
343343
};
344344

345+
/**
346+
* Parses a JSON string message into a TMessageData object.
347+
* Handles parsing errors gracefully by returning a structured error object.
348+
*
349+
* @param data - The JSON string to parse
350+
* @returns A TMessageData object, or an error object if parsing fails
351+
*/
345352
#parseMessageData(data: string): TMessageData {
346353
try {
347-
return JSON.parse(data);
354+
const parsed = JSON.parse(data);
355+
356+
if (!parsed || typeof parsed !== 'object' || !parsed.frameId) {
357+
throw new Error("Invalid message structure");
358+
}
359+
360+
return parsed as TMessageData;
348361
} catch (error) {
349-
console.warn("Failed to parse message:", error);
362+
const errorMessage = error instanceof Error ? error.message : "Unknown parsing error";
363+
console.warn("Failed to parse message:", errorMessage);
364+
350365
return {
351366
frameId: "error",
352367
type: MessageTypes.Error,
353368
commandName: "parseMessageData",
354-
error: { message: "Invalid message format" },
369+
error: {
370+
message: "Invalid message format: " + errorMessage
371+
}
355372
};
356373
}
357374
}

0 commit comments

Comments
 (0)