File tree Expand file tree Collapse file tree 1 file changed +20
-3
lines changed Expand file tree Collapse file tree 1 file changed +20
-3
lines changed Original file line number Diff line number Diff line change @@ -342,16 +342,33 @@ export class SDKInstance {
342
342
}
343
343
} ;
344
344
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
+ */
345
352
#parseMessageData( data : string ) : TMessageData {
346
353
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 ;
348
361
} 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
+
350
365
return {
351
366
frameId : "error" ,
352
367
type : MessageTypes . Error ,
353
368
commandName : "parseMessageData" ,
354
- error : { message : "Invalid message format" } ,
369
+ error : {
370
+ message : "Invalid message format: " + errorMessage
371
+ }
355
372
} ;
356
373
}
357
374
}
You can’t perform that action at this time.
0 commit comments