Skip to content

Commit b13dfdb

Browse files
committed
review suggestions
1 parent 6435448 commit b13dfdb

File tree

3 files changed

+14
-16
lines changed

3 files changed

+14
-16
lines changed

packages/nuxt/src/module.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,13 @@ export default defineNuxtModule<ModuleOptions>({
9898
});
9999

100100
nuxt.hooks.hook('pages:extend', pages => {
101-
pagesDataTemplate.getContents = () => `export default ${JSON.stringify(pages, null, 2)};`;
101+
pagesDataTemplate.getContents = () => {
102+
const pagesSubset = pages.map(page => ({
103+
file: page.file,
104+
path: page.path,
105+
}));
106+
return `export default ${JSON.stringify(pagesSubset, null, 2)};`;
107+
};
102108
});
103109

104110
nuxt.hooks.hook('nitro:init', nitro => {

packages/nuxt/src/runtime/hooks/updateRouteBeforeResponse.ts

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { getActiveSpan, getCurrentScope, getRootSpan, logger, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE } from '@sentry/core';
1+
import { getActiveSpan, getRootSpan, logger, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE } from '@sentry/core';
22
import type { H3Event } from 'h3';
33

44
/**
@@ -15,16 +15,10 @@ export function updateRouteBeforeResponse(event: H3Event): void {
1515
// Example: Matched route is "/users/:id" and the event's path is "/users/123",
1616
if (matchedRoutePath && matchedRoutePath !== event._path) {
1717
if (matchedRoutePath === '/**') {
18-
// todo: support parametrized SSR pageload spans
1918
// If page is server-side rendered, the whole path gets transformed to `/**` (Example : `/users/123` becomes `/**` instead of `/users/:id`).
20-
return; // Skip if the matched route is a catch-all route.
19+
return; // Skip if the matched route is a catch-all route (handled in `route-detector.server.ts`)
2120
}
2221

23-
const method = event._method || 'GET';
24-
25-
const parametrizedTransactionName = `${method.toUpperCase()} ${matchedRoutePath}`;
26-
getCurrentScope().setTransactionName(parametrizedTransactionName);
27-
2822
const activeSpan = getActiveSpan(); // In development mode, getActiveSpan() is always undefined
2923
if (!activeSpan) {
3024
return;
@@ -52,6 +46,6 @@ export function updateRouteBeforeResponse(event: H3Event): void {
5246
});
5347
}
5448

55-
logger.log(`Updated transaction name for parametrized route: ${parametrizedTransactionName}`);
49+
logger.log(`Updated transaction name for parametrized route: ${matchedRoutePath}`);
5650
}
5751
}

packages/nuxt/src/runtime/plugins/route-detector.server.ts

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
import { getActiveSpan, getRootSpan, logger, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE } from '@sentry/core';
22
import { defineNuxtPlugin } from 'nuxt/app';
3-
import type { NuxtPage } from 'nuxt/schema';
3+
import type { NuxtPageSubset } from '../utils/route-extraction';
44
import { extractParametrizedRouteFromContext } from '../utils/route-extraction';
55

66
export default defineNuxtPlugin(nuxtApp => {
77
nuxtApp.hooks.hook('app:rendered', async renderContext => {
8-
let buildTimePagesData: NuxtPage[] = [];
8+
let buildTimePagesData: NuxtPageSubset[];
99
try {
1010
// This is a common Nuxt pattern to import build-time generated data: https://nuxt.com/docs/4.x/api/kit/templates#creating-a-virtual-file-for-runtime-plugin
1111
// @ts-expect-error This import is dynamically resolved at build time (`addTemplate` in module.ts)
1212
const { default: importedPagesData } = await import('#build/sentry--nuxt-pages-data.mjs');
1313
buildTimePagesData = importedPagesData || [];
1414
} catch (error) {
1515
buildTimePagesData = [];
16+
logger.warn('Failed to import build-time pages data:', error);
1617
}
1718

1819
const ssrContext = renderContext.ssrContext;
@@ -36,10 +37,7 @@ export default defineNuxtPlugin(nuxtApp => {
3637
return;
3738
}
3839

39-
const method = ssrContext?.event?._method || 'GET';
40-
const parametrizedTransactionName = `${method.toUpperCase()} ${routeInfo.parametrizedRoute}`;
41-
42-
logger.log('Matched parametrized server route:', parametrizedTransactionName);
40+
logger.log('Matched parametrized server route:', routeInfo.parametrizedRoute);
4341

4442
rootSpan.setAttributes({
4543
[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'route',

0 commit comments

Comments
 (0)