Skip to content

Commit deae6a2

Browse files
committed
Catch non-reducer errors
Related to #27.
1 parent 892b477 commit deae6a2

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

src/browser/extension/background/messaging.js

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,16 @@ function messaging(request, sender, sendResponse) {
5050
openDevToolsWindow(position);
5151
return true;
5252
}
53+
if (request.type === 'ERROR') {
54+
chrome.notifications.create('app-error', {
55+
type: 'basic',
56+
title: 'An error occurred in the app',
57+
message: request.message,
58+
iconUrl: 'img/logo/48x48.png',
59+
isClickable: false
60+
});
61+
return true;
62+
}
5363

5464
const payload = typeof request.payload === 'string' ? parseJSON(request.payload) : request.payload;
5565
if (!payload) return true;
@@ -69,7 +79,7 @@ function messaging(request, sender, sendResponse) {
6979
if (error) {
7080
chrome.notifications.create('redux-error', {
7181
type: 'basic',
72-
title: 'An error occurred in the app',
82+
title: 'An error occurred in the reducer',
7383
message: error,
7484
iconUrl: 'img/logo/48x48.png',
7585
isClickable: true

src/browser/extension/inject/pageScript.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,16 @@ window.devToolsExtension = function(next) {
4747
source: 'redux-page',
4848
init: init || false
4949
}, '*');
50+
51+
// Catch non-reducer errors
52+
window.addEventListener('error', function(e) {
53+
if (!window.devToolsOptions.notifyErrors || !e.filename) return;
54+
window.postMessage({
55+
source: 'redux-page',
56+
type: 'ERROR',
57+
message: e.message
58+
}, '*');
59+
});
5060
}
5161

5262
function onChange(init) {

0 commit comments

Comments
 (0)