File tree Expand file tree Collapse file tree 1 file changed +11
-1
lines changed
packages/sveltekit/src/client Expand file tree Collapse file tree 1 file changed +11
-1
lines changed Original file line number Diff line number Diff line change @@ -71,7 +71,17 @@ export function wrapLoadWithSentry<T extends (...args: any) => any>(origLoad: T)
7171
7272 addNonEnumerableProperty ( patchedEvent as unknown as Record < string , unknown > , '__sentry_wrapped__' , true ) ;
7373
74- const routeId = event . route . id ;
74+ // Accessing any member of `event.route` causes SvelteKit to invalidate the
75+ // client-side universal `load` function's data prefetched data, causing another reload on the actual navigation.
76+ // To work around this, we use `Object.getOwnPropertyDescriptor` which doesn't invoke the proxy.
77+ const routeIdDescriptor = event . route && Object . getOwnPropertyDescriptor ( event . route , 'id' ) ;
78+ // First, we try to access the route id from the property descriptor.
79+ // This will only work for @sveltejs /kit >= 1.24.0
80+ const routeIdFromDescriptor = routeIdDescriptor && ( routeIdDescriptor . value as string | undefined ) ;
81+ // If routeIdFromDescriptor is undefined, we fall back to the old behavior of accessing
82+ // `event.route.id` directly. This will still cause invalidations but we get a route name.
83+ const routeId = routeIdFromDescriptor || event . route . id ;
84+
7585 return trace (
7686 {
7787 op : 'function.sveltekit.load' ,
You can’t perform that action at this time.
0 commit comments