Skip to content

Instantly share code, notes, and snippets.

@zinkkrysty
Created August 11, 2015 08:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zinkkrysty/14bccc4466a3f1f6d2f0 to your computer and use it in GitHub Desktop.
Save zinkkrysty/14bccc4466a3f1f6d2f0 to your computer and use it in GitHub Desktop.
Catch errors in jQuery callbacks using Honeybadger. Slightly modified version, where it checks for both the presence of jQuery and Honeybadger objects.
// Generated by CoffeeScript 1.9.3
var honeybadgerAsyncForjQuery;
(honeybadgerAsyncForjQuery = function($) {
var _oldAjax, _oldEventAdd, _oldReady, honeybadgerAjaxWrapper, honeybadgerEventAdd, honeybadgerjQueryReadyWrapper;
if ((typeof $ == 'undefined') || (typeof Honeybadger == 'undefined')) {
return;
}
_oldEventAdd = $.event.add;
$.event.add = honeybadgerEventAdd = function(elem, types, handler, data, selector) {
var _handler;
_handler = void 0;
if (handler.handler) {
_handler = handler.handler;
handler.handler = Honeybadger.wrap(handler.handler);
} else {
_handler = handler;
handler = Honeybadger.wrap(handler);
}
if (_handler.guid) {
handler.guid = _handler.guid;
} else {
handler.guid = _handler.guid = $.guid++;
}
return _oldEventAdd.call(this, elem, types, handler, data, selector);
};
_oldReady = $.fn.ready;
$.fn.ready = honeybadgerjQueryReadyWrapper = function(fn) {
return _oldReady.call(this, Honeybadger.wrap(fn));
};
_oldAjax = $.ajax;
$.ajax = honeybadgerAjaxWrapper = function(url, options) {
var e, key, keys;
keys = ["complete", "error", "success"];
key = void 0;
if (typeof url === "object") {
options = url;
url = undefined;
}
options = options || {};
while (key = keys.pop()) {
if ($.isFunction(options[key])) {
options[key] = Honeybadger.wrap(options[key]);
}
}
try {
return _oldAjax.call(this, url, options);
} catch (_error) {
e = _error;
Honeybadger.notify(e);
throw e;
}
};
})(window.jQuery);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment