// Error reporter (client). Was flowkey:raven; replaced by @sentry/browser // behind the same `.log()` facade (see the server counterpart). Enabled only // when Meteor.settings.public.sentryPublicDSN is set; otherwise a plain console // logger. ErrorBoundary calls `.log(error, info)` where info is React's // { componentStack } — passed to Sentry as extra context. import * as Sentry from '@sentry/browser'; import { Meteor } from 'meteor/meteor'; const dsn = Meteor.settings.public.sentryPublicDSN; const enabled = !!dsn; if (enabled) { Sentry.init({ dsn, environment: Meteor.isDevelopment ? 'development' : 'production', tracesSampleRate: 0 }); } const ravenLogger = { log(error, info) { console.log(error); if (enabled) { Sentry.captureException(error, info ? { extra: { info } } : undefined); } } }; console.log(`sentryLogger (client) ${enabled ? 'enabled' : 'disabled'}`); export default ravenLogger;