Skip to content

Commit 9ee9ca8

Browse files
jakequade-pcesezen
andauthored
Better error logging on event failure (#450)
* Better error logging on event failure * Update events.js * Update src/utils/events.js extended serialisation Co-authored-by: Enes Kutay SEZEN <eneskutaysezen@gmail.com> --------- Co-authored-by: Enes Kutay SEZEN <eneskutaysezen@gmail.com>
1 parent 9b292c7 commit 9ee9ca8

1 file changed

Lines changed: 17 additions & 2 deletions

File tree

src/utils/events.js

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,22 @@ EventEmitter.prototype.emit = function emit(type) {
143143
throw er; // Unhandled 'error' event
144144
}
145145
// At least give some kind of context to the user
146-
var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));
146+
var detail = '';
147+
if (er && er.message) {
148+
detail = ' (' + er.message + ')';
149+
} else if (er !== undefined && er !== null) {
150+
var serialized;
151+
try {
152+
serialized = JSON.stringify(er);
153+
} catch (e) {
154+
serialized = undefined;
155+
}
156+
if (typeof serialized !== 'string') {
157+
serialized = Object.prototype.toString.call(er);
158+
}
159+
detail = ' (' + serialized + ')';
160+
}
161+
var err = new Error('Unhandled error.' + detail);
147162
err.context = er;
148163
throw err; // Unhandled 'error' event
149164
}
@@ -498,4 +513,4 @@ function eventTargetAgnosticAddListener(emitter, name, listener, flags) {
498513
} else {
499514
throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type ' + typeof emitter);
500515
}
501-
}
516+
}

0 commit comments

Comments
 (0)