Skip to content

Commit 27d7f23

Browse files
authored
Set tags based on meta envelope (#12)
1 parent 4061e02 commit 27d7f23

File tree

2 files changed

+24
-2
lines changed

2 files changed

+24
-2
lines changed

src/components/ClientWrapper.tsx

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,28 @@
11
'use client'
22

3-
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
3+
import { QueryCache, QueryClient, QueryClientProvider } from '@tanstack/react-query'
44
import { FC, PropsWithChildren } from 'react'
5+
import { Envelope } from '@cucumber/messages'
6+
import * as Sentry from '@sentry/nextjs'
57

6-
const queryClient = new QueryClient()
8+
const queryClient = new QueryClient({
9+
queryCache: new QueryCache({
10+
onSuccess: (data, query) => {
11+
if (query.meta?.envelopes) {
12+
const envelopes = data as ReadonlyArray<Envelope>
13+
const meta = envelopes?.find(e => e.meta)?.meta
14+
if (meta) {
15+
Sentry.setTag('meta_os_name', meta.os.name)
16+
Sentry.setTag('meta_os_version', meta.os.version)
17+
Sentry.setTag('meta_runtime_name', meta.runtime.name)
18+
Sentry.setTag('meta_runtime_version', meta.runtime.version)
19+
Sentry.setTag('meta_implementation_name', meta.implementation.name)
20+
Sentry.setTag('meta_implementation_version', meta.implementation.version)
21+
}
22+
}
23+
},
24+
}),
25+
})
726

827
export const ClientWrapper: FC<PropsWithChildren> = ({ children }) => {
928
return <QueryClientProvider client={queryClient}>{children}</QueryClientProvider>

src/hooks/useEnvelopes.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,8 @@ export function useEnvelopes(id: string, getUrl: string) {
1212
const raw = await response.text()
1313
return raw.trim().split('\n').map(s => JSON.parse(s) as Envelope)
1414
},
15+
meta: {
16+
envelopes: true
17+
}
1518
})
1619
}

0 commit comments

Comments
 (0)