Skip to main content
Glama
exception-autocapture.js4.04 kB
var __read = (this && this.__read) || function (o, n) { var m = typeof Symbol === "function" && o[Symbol.iterator]; if (!m) return o; var i = m.call(o), r, ar = [], e; try { while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); } catch (error) { e = { error: error }; } finally { try { if (r && !r.done && (m = i["return"])) m.call(i); } finally { if (e) throw e.error; } } return ar; }; var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); }; import { errorToProperties, unhandledRejectionToProperties } from '../extensions/exception-autocapture/error-conversion'; import { assignableWindow, window } from '../utils/globals'; import { createLogger } from '../utils/logger'; var logger = createLogger('[ExceptionAutocapture]'); var wrapOnError = function (captureFn) { var win = window; if (!win) { logger.info('window not available, cannot wrap onerror'); } var originalOnError = win.onerror; win.onerror = function () { var _a; var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } var errorProperties = errorToProperties({ event: args[0], error: args[4] }); captureFn(errorProperties); return (_a = originalOnError === null || originalOnError === void 0 ? void 0 : originalOnError.apply(void 0, __spreadArray([], __read(args), false))) !== null && _a !== void 0 ? _a : false; }; win.onerror.__POSTHOG_INSTRUMENTED__ = true; return function () { var _a; (_a = win.onerror) === null || _a === void 0 ? true : delete _a.__POSTHOG_INSTRUMENTED__; win.onerror = originalOnError; }; }; var wrapUnhandledRejection = function (captureFn) { var win = window; if (!win) { logger.info('window not available, cannot wrap onUnhandledRejection'); } var originalOnUnhandledRejection = win.onunhandledrejection; win.onunhandledrejection = function () { var _a; var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } var errorProperties = unhandledRejectionToProperties(args); captureFn(errorProperties); return (_a = originalOnUnhandledRejection === null || originalOnUnhandledRejection === void 0 ? void 0 : originalOnUnhandledRejection.apply(win, args)) !== null && _a !== void 0 ? _a : false; }; win.onunhandledrejection.__POSTHOG_INSTRUMENTED__ = true; return function () { var _a; (_a = win.onunhandledrejection) === null || _a === void 0 ? true : delete _a.__POSTHOG_INSTRUMENTED__; win.onunhandledrejection = originalOnUnhandledRejection; }; }; var posthogErrorWrappingFunctions = { wrapOnError: wrapOnError, wrapUnhandledRejection: wrapUnhandledRejection, }; assignableWindow.__PosthogExtensions__ = assignableWindow.__PosthogExtensions__ || {}; assignableWindow.__PosthogExtensions__.errorWrappingFunctions = posthogErrorWrappingFunctions; assignableWindow.__PosthogExtensions__.parseErrorAsProperties = errorToProperties; // we used to put these on window, and now we put them on __PosthogExtensions__ // but that means that old clients which lazily load this extension are looking in the wrong place // yuck, // so we also put them directly on the window // when 1.161.1 is the oldest version seen in production we can remove this assignableWindow.posthogErrorWrappingFunctions = posthogErrorWrappingFunctions; assignableWindow.parseErrorAsProperties = errorToProperties; export default posthogErrorWrappingFunctions; //# sourceMappingURL=exception-autocapture.js.map

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sadiuysal/mem0-mcp-server-ts'

If you have feedback or need assistance with the MCP directory API, please join our Discord server