import { Platform } from 'react-native'; import * as ExpoSentry from 'sentry-expo'; import { config } from 'config'; import Constants from 'expo-constants'; import { Stage } from 'config/types'; export const Sentry = Platform.OS === 'web' ? ExpoSentry.Browser : ExpoSentry.Native; const isLocal = config.stage === Stage.Local; export const initSentry = () => ExpoSentry.init({ dsn: config.sentry.dsn, release: Constants.manifest?.version, tracesSampleRate: 1.0, debug: config.stage !== Stage.Production, environment: config.stage, }); interface Logger { info(data: any): void; error(error: any): void; } const error = (data: any) => { if (isLocal) { console.error(data); return; } return Sentry.captureException(data); }; const info = (extra: any) => { if (isLocal) { console.log(extra); return; } return Sentry.captureEvent({ extra }); }; export const logger: Logger = { error, info, };