Skip to content

Commit 7b1005e

Browse files
committed
fix(remix): Avoid rewrapping root loader.
1 parent 82c9586 commit 7b1005e

File tree

1 file changed

+12
-11
lines changed

1 file changed

+12
-11
lines changed

packages/remix/src/server/instrumentServer.ts

+12-11
Original file line numberDiff line numberDiff line change
@@ -364,6 +364,18 @@ function instrumentBuildCallback(
364364
for (const [id, route] of Object.entries(build.routes)) {
365365
const wrappedRoute = { ...route, module: { ...route.module } };
366366

367+
// Entry module should have a loader function to provide `sentry-trace` and `baggage`
368+
// They will be available for the root `meta` function as `data.sentryTrace` and `data.sentryBaggage`
369+
if (!wrappedRoute.parentId) {
370+
if (!wrappedRoute.module.loader) {
371+
wrappedRoute.module.loader = () => ({});
372+
}
373+
374+
if (!(wrappedRoute.module.loader as WrappedFunction).__sentry_original__) {
375+
wrappedRoute.module.loader = makeWrappedRootLoader()(wrappedRoute.module.loader);
376+
}
377+
}
378+
367379
const routeAction = wrappedRoute.module.action as undefined | WrappedFunction;
368380
if (routeAction && !routeAction.__sentry_original__) {
369381
fill(wrappedRoute.module, 'action', makeWrappedAction(id, options?.instrumentTracing));
@@ -374,17 +386,6 @@ function instrumentBuildCallback(
374386
fill(wrappedRoute.module, 'loader', makeWrappedLoader(id, options?.instrumentTracing));
375387
}
376388

377-
// Entry module should have a loader function to provide `sentry-trace` and `baggage`
378-
// They will be available for the root `meta` function as `data.sentryTrace` and `data.sentryBaggage`
379-
if (!wrappedRoute.parentId) {
380-
if (!wrappedRoute.module.loader) {
381-
wrappedRoute.module.loader = () => ({});
382-
}
383-
384-
// We want to wrap the root loader regardless of whether it's already wrapped before.
385-
fill(wrappedRoute.module, 'loader', makeWrappedRootLoader());
386-
}
387-
388389
routes[id] = wrappedRoute;
389390
}
390391

0 commit comments

Comments
 (0)