@metamask/multichain-account-service
Version:
Service to manage multichain accounts
28 lines • 1.23 kB
JavaScript
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