diff options
Diffstat (limited to 'src/lib/statsig/statsig.tsx')
-rw-r--r-- | src/lib/statsig/statsig.tsx | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/src/lib/statsig/statsig.tsx b/src/lib/statsig/statsig.tsx index 9bccedc6e..a9d69fda7 100644 --- a/src/lib/statsig/statsig.tsx +++ b/src/lib/statsig/statsig.tsx @@ -46,11 +46,21 @@ export function logEvent<E extends keyof LogEvents>( eventName: E & string, rawMetadata: LogEvents[E] & FlatJSONRecord, ) { - const fullMetadata = { - ...rawMetadata, - } as Record<string, string> // Statsig typings are unnecessarily strict here. - fullMetadata.routeName = getCurrentRouteName() ?? '(Uninitialized)' - Statsig.logEvent(eventName, null, fullMetadata) + try { + const fullMetadata = { + ...rawMetadata, + } as Record<string, string> // Statsig typings are unnecessarily strict here. + fullMetadata.routeName = getCurrentRouteName() ?? '(Uninitialized)' + if (Statsig.initializeCalled()) { + Statsig.logEvent(eventName, null, fullMetadata) + } + } catch (e) { + // A log should never interrupt the calling code, whatever happens. + // Rethrow on a clean stack. + setTimeout(() => { + throw e + }) + } } export function useGate(gateName: string) { |