in packages/relay-devtools-core/src/backend.js [143:172]
function handleMessage(event) {
let data;
try {
if (typeof event.data === 'string') {
data = JSON.parse(event.data);
if (__DEBUG__) {
debug('WebSocket.onmessage', data);
}
} else {
throw Error();
}
} catch (e) {
console.error(
'[Relay DevTools] Failed to parse JSON: ' + String(event.data)
);
return;
}
messageListeners.forEach(fn => {
try {
fn(data);
} catch (error) {
// jsc doesn't play so well with tracebacks that go into eval'd code,
// so the stack trace here will stop at the `eval()` call. Getting the
// message that caused the error is the best we can do for now.
console.log('[Relay DevTools] Error calling listener', data);
console.log('error:', error);
throw error;
}
});
}