UNPKG

@metamask/multichain-account-service

Version:
28 lines 1.23 kB
import { logErrorAs } from "./logger.mjs"; import { isKeyringControllerLockedError, isTimeoutError } from "./providers/utils.mjs"; import { createSentryError } from "./utils.mjs"; /** * Reports an error by logging it and optionally capturing it in Sentry. * * Timeout errors are treated as warnings (not reported to Sentry). All other * errors are logged as errors and captured via `captureException`. * * @param messenger - Object with an optional `captureException` method. * @param messenger.captureException - Optional method to capture exceptions in Sentry. * @param message - The static message describing what failed. * @param error - The caught error. * @param context - Optional context to attach to the Sentry error. */ export function reportError(messenger, message, error, context) { if (isTimeoutError(error) || isKeyringControllerLockedError(error)) { logErrorAs('warn', message, error); console.warn(message, error); } else { logErrorAs('error', message, error); console.error(message, error); const sentryError = createSentryError(message, error, context); messenger.captureException?.(sentryError); } } //# sourceMappingURL=errors.mjs.map