breadcrumbs.ts21 lines · main
1import type * as Sentry from '@sentry/nextjs'
2
3import { RingBuffer } from './ringBuffer'
4
5export const MIRRORED_BREADCRUMBS = new RingBuffer<Sentry.Breadcrumb>(50)
6
7export const getMirroredBreadcrumbs = (): Sentry.Breadcrumb[] => {
8 return MIRRORED_BREADCRUMBS.toArray()
9}
10
11let BREADCRUMB_SNAPSHOT: Sentry.Breadcrumb[] | null = null
12
13export const takeBreadcrumbSnapshot = (): void => {
14 BREADCRUMB_SNAPSHOT = getMirroredBreadcrumbs()
15}
16
17export const getOwnershipOfBreadcrumbSnapshot = (): Sentry.Breadcrumb[] | null => {
18 const snapshot = BREADCRUMB_SNAPSHOT
19 BREADCRUMB_SNAPSHOT = null
20 return snapshot
21}