@perceptr/web-sdk
Version:
Perceptr Web SDK for recording and monitoring user sessions
39 lines (38 loc) • 1.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SDKErrorEvent = exports.ErrorCode = void 0;
exports.emitError = emitError;
exports.wrapWithErrorBoundary = wrapWithErrorBoundary;
var ErrorCode;
(function (ErrorCode) {
ErrorCode["INITIALIZATION_FAILED"] = "INITIALIZATION_FAILED";
ErrorCode["RECORDING_FAILED"] = "RECORDING_FAILED";
ErrorCode["MEMORY_LIMIT_EXCEEDED"] = "MEMORY_LIMIT_EXCEEDED";
ErrorCode["EXPORT_FAILED"] = "EXPORT_FAILED";
ErrorCode["API_ERROR"] = "API_ERROR";
})(ErrorCode || (exports.ErrorCode = ErrorCode = {}));
class SDKErrorEvent extends CustomEvent {
constructor(error) {
super("sdk-error", { detail: error });
}
}
exports.SDKErrorEvent = SDKErrorEvent;
function emitError(error) {
window.dispatchEvent(new SDKErrorEvent(error));
}
function wrapWithErrorBoundary(fn, errorCode, context) {
return ((...args) => {
try {
return fn(...args);
}
catch (error) {
emitError({
code: errorCode,
message: error instanceof Error ? error.message : "Unknown error",
originalError: error,
context,
});
throw error;
}
});
}