UNPKG

@embrace-io/react-native

Version:
45 lines (44 loc) 1.74 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getSDKErrorLoggingConfig = exports.configureSDKErrorLogging = exports.safePromise = exports.handleSDKError = void 0; let errorLoggingConfig = { enabled: false, allowLogToConsole: false, }; const handleSDKError = (methodName, error) => { if (!errorLoggingConfig.enabled) { return; } const errorObj = error instanceof Error ? error : new Error(String(error)); const errorMessage = errorObj.message || String(error); if (errorLoggingConfig.customHandler) { try { errorLoggingConfig.customHandler(methodName, errorObj); } catch (handlerError) { if (errorLoggingConfig.allowLogToConsole) { console.error(`[Embrace RN SDK] Error in custom error handler for ${methodName}:`, handlerError); } } } if (errorLoggingConfig.allowLogToConsole) { console.error(`[Embrace RN SDK] SDK error in ${methodName}: ${errorMessage}`, errorObj); if (errorObj.stack) { console.error(`Stack trace:\n${errorObj.stack}`); } } }; exports.handleSDKError = handleSDKError; const safePromise = (promise, methodName, fallback) => promise.catch((error) => { (0, exports.handleSDKError)(methodName, error); return fallback; }); exports.safePromise = safePromise; const configureSDKErrorLogging = (config) => { errorLoggingConfig = Object.assign(Object.assign({}, errorLoggingConfig), config); }; exports.configureSDKErrorLogging = configureSDKErrorLogging; const getSDKErrorLoggingConfig = () => { return Object.assign({}, errorLoggingConfig); }; exports.getSDKErrorLoggingConfig = getSDKErrorLoggingConfig;