Skip to content

Commit faaba12

Browse files
author
Luca Forstner
committed
Remove redundant separate data flags
1 parent 5b310dd commit faaba12

File tree

6 files changed

+29
-75
lines changed

6 files changed

+29
-75
lines changed

packages/nextjs/src/config/wrappers/withSentryGetServerSideProps.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,14 @@ export function withSentryGetServerSideProps(
4444
if ('props' in serverSideProps) {
4545
const requestTransaction = getTransactionFromRequest(req);
4646
if (requestTransaction) {
47-
serverSideProps.props._sentryGetServerSidePropsTraceData = requestTransaction.toTraceparent();
48-
serverSideProps.props._sentryGetServerSidePropsBaggage = serializeBaggage(requestTransaction.getBaggage());
47+
serverSideProps.props._sentryTraceData = requestTransaction.toTraceparent();
48+
serverSideProps.props._sentryBaggage = serializeBaggage(requestTransaction.getBaggage());
4949
}
5050
}
5151

5252
return serverSideProps;
5353
} else {
54-
return origGetServerSideProps(...getServerSidePropsArguments);
54+
return errorWrappedGetServerSideProps(...getServerSidePropsArguments);
5555
}
5656
};
5757
}

packages/nextjs/src/config/wrappers/withSentryServerSideAppGetInitialProps.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ export function withSentryServerSideAppGetInitialProps(origAppGetInitialProps: A
3333
// `res` are always defined: https://nextjs.org/docs/api-reference/data-fetching/get-initial-props#context-object
3434
const appGetInitialProps: {
3535
pageProps: {
36-
_sentryGetInitialPropsTraceData?: string;
37-
_sentryGetInitialPropsBaggage?: string;
36+
_sentryTraceData?: string;
37+
_sentryBaggage?: string;
3838
};
3939
} = await callTracedServerSideDataFetcher(
4040
errorWrappedAppGetInitialProps,
@@ -50,8 +50,8 @@ export function withSentryServerSideAppGetInitialProps(origAppGetInitialProps: A
5050

5151
const requestTransaction = getTransactionFromRequest(req!);
5252
if (requestTransaction) {
53-
appGetInitialProps.pageProps._sentryGetInitialPropsTraceData = requestTransaction.toTraceparent();
54-
appGetInitialProps.pageProps._sentryGetInitialPropsBaggage = serializeBaggage(requestTransaction.getBaggage());
53+
appGetInitialProps.pageProps._sentryTraceData = requestTransaction.toTraceparent();
54+
appGetInitialProps.pageProps._sentryBaggage = serializeBaggage(requestTransaction.getBaggage());
5555
}
5656

5757
return appGetInitialProps;

packages/nextjs/src/config/wrappers/withSentryServerSideErrorGetInitialProps.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ export function withSentryServerSideErrorGetInitialProps(
3535
// Since this wrapper is only applied to `getInitialProps` running on the server, we can assert that `req` and
3636
// `res` are always defined: https://nextjs.org/docs/api-reference/data-fetching/get-initial-props#context-object
3737
const errorGetInitialProps: ErrorProps & {
38-
_sentryGetInitialPropsTraceData?: string;
39-
_sentryGetInitialPropsBaggage?: string;
38+
_sentryTraceData?: string;
39+
_sentryBaggage?: string;
4040
} = await callTracedServerSideDataFetcher(
4141
errorWrappedGetInitialProps,
4242
errorGetInitialPropsArguments,
@@ -51,8 +51,8 @@ export function withSentryServerSideErrorGetInitialProps(
5151

5252
const requestTransaction = getTransactionFromRequest(req!);
5353
if (requestTransaction) {
54-
errorGetInitialProps._sentryGetInitialPropsTraceData = requestTransaction.toTraceparent();
55-
errorGetInitialProps._sentryGetInitialPropsBaggage = serializeBaggage(requestTransaction.getBaggage());
54+
errorGetInitialProps._sentryTraceData = requestTransaction.toTraceparent();
55+
errorGetInitialProps._sentryBaggage = serializeBaggage(requestTransaction.getBaggage());
5656
}
5757

5858
return errorGetInitialProps;

packages/nextjs/src/config/wrappers/withSentryServerSideGetInitialProps.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ export function withSentryServerSideGetInitialProps(origGetInitialProps: GetInit
3131
// Since this wrapper is only applied to `getInitialProps` running on the server, we can assert that `req` and
3232
// `res` are always defined: https://nextjs.org/docs/api-reference/data-fetching/get-initial-props#context-object
3333
const initialProps: {
34-
_sentryGetInitialPropsTraceData?: string;
35-
_sentryGetInitialPropsBaggage?: string;
34+
_sentryTraceData?: string;
35+
_sentryBaggage?: string;
3636
} = await callTracedServerSideDataFetcher(errorWrappedGetInitialProps, getInitialPropsArguments, req!, res!, {
3737
dataFetcherRouteName: context.pathname,
3838
requestedRouteName: context.pathname,
@@ -41,8 +41,8 @@ export function withSentryServerSideGetInitialProps(origGetInitialProps: GetInit
4141

4242
const requestTransaction = getTransactionFromRequest(req!);
4343
if (requestTransaction) {
44-
initialProps._sentryGetInitialPropsTraceData = requestTransaction.toTraceparent();
45-
initialProps._sentryGetInitialPropsBaggage = serializeBaggage(requestTransaction.getBaggage());
44+
initialProps._sentryTraceData = requestTransaction.toTraceparent();
45+
initialProps._sentryBaggage = serializeBaggage(requestTransaction.getBaggage());
4646
}
4747

4848
return initialProps;

packages/nextjs/src/performance/client.ts

Lines changed: 7 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -24,17 +24,12 @@ type StartTransactionCb = (context: TransactionContext) => Transaction | undefin
2424
interface SentryEnhancedNextData extends NextData {
2525
props: {
2626
pageProps?: {
27-
_sentryGetInitialPropsTraceData?: string; // trace parent info, if injected by server-side `getInitialProps`
28-
_sentryGetInitialPropsBaggage?: string; // baggage, if injected by server-side `getInitialProps`
29-
_sentryGetServerSidePropsTraceData?: string; // trace parent info, if injected by server-side `getServerSideProps`
30-
_sentryGetServerSidePropsBaggage?: string; // baggage, if injected by server-side `getServerSideProps`
31-
32-
// The following two values are only injected in a very special case with the following conditions:
27+
_sentryTraceData?: string; // trace parent info, if injected by a data-fetcher
28+
_sentryBaggage?: string; // baggage, if injected by a data-fetcher
29+
// These two values are only injected by `getStaticProps` in a very special case with the following conditions:
3330
// 1. The page's `getStaticPaths` method must have returned `fallback: 'blocking'`.
3431
// 2. The requested page must be a "miss" in terms of "Incremental Static Regeneration", meaning the requested page has not been generated before.
3532
// In this case, a page is requested and only served when `getStaticProps` is done. There is not even a fallback page or similar.
36-
_sentryGetStaticPropsTraceData?: string; // trace parent info, if injected by server-side `getStaticProps`
37-
_sentryGetStaticPropsBaggage?: string; // baggage, if injected by server-side `getStaticProps`
3833
};
3934
};
4035
}
@@ -85,24 +80,12 @@ function extractNextDataTagInformation(): NextDataTagInfo {
8580
nextDataTagInfo.params = query;
8681

8782
if (props && props.pageProps) {
88-
const pageProps = props.pageProps;
89-
const getInitialPropsBaggage = pageProps._sentryGetInitialPropsBaggage;
90-
const getServerSidePropsBaggage = pageProps._sentryGetServerSidePropsBaggage;
91-
const getStaticPropsBaggage = pageProps._sentryGetStaticPropsBaggage;
92-
93-
// Ordering of the following shouldn't matter but `getInitialProps` generally runs before `getServerSideProps` or `getStaticProps` so we give it priority.
94-
const baggage = getInitialPropsBaggage || getServerSidePropsBaggage || getStaticPropsBaggage;
95-
if (baggage) {
96-
nextDataTagInfo.baggage = baggage;
83+
if (props.pageProps._sentryBaggage) {
84+
nextDataTagInfo.baggage = props.pageProps._sentryBaggage;
9785
}
9886

99-
const getInitialPropsTraceData = pageProps._sentryGetInitialPropsTraceData;
100-
const getServerSidePropsTraceData = pageProps._sentryGetServerSidePropsTraceData;
101-
const getStaticPropsTraceData = pageProps._sentryGetStaticPropsTraceData;
102-
// Ordering of the following shouldn't matter but `getInitialProps` generally runs before `getServerSideProps` or `getStaticProps` so we give it priority.
103-
const traceData = getInitialPropsTraceData || getServerSidePropsTraceData || getStaticPropsTraceData;
104-
if (traceData) {
105-
nextDataTagInfo.traceParentData = extractTraceparentData(traceData);
87+
if (props.pageProps._sentryTraceData) {
88+
nextDataTagInfo.traceParentData = extractTraceparentData(props.pageProps._sentryTraceData);
10689
}
10790
}
10891

packages/nextjs/test/performance/client.test.ts

Lines changed: 7 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -90,9 +90,8 @@ describe('client', () => {
9090
{ user: 'lforst', id: '1337', q: '42' },
9191
{
9292
pageProps: {
93-
_sentryGetInitialPropsTraceData: 'c82b8554881b4d28ad977de04a4fb40a-a755953cd3394d5f-1',
94-
_sentryGetInitialPropsBaggage:
95-
'other=vendor,foo=bar,third=party,last=item,sentry-release=2.1.0,sentry-environment=myEnv',
93+
_sentryTraceData: 'c82b8554881b4d28ad977de04a4fb40a-a755953cd3394d5f-1',
94+
_sentryBaggage: 'other=vendor,foo=bar,third=party,last=item,sentry-release=2.1.0,sentry-environment=myEnv',
9695
},
9796
},
9897
true,
@@ -112,46 +111,18 @@ describe('client', () => {
112111
},
113112
],
114113
[
115-
'https://example.com/dynamic',
116-
'/dynamic',
114+
'https://example.com/some-page',
115+
'/some-page',
117116
{},
118117
{
119118
pageProps: {
120-
_sentryGetServerSidePropsTraceData: 'c82b8554881b4d28ad977de04a4fb40a-a755953cd3394d5f-1',
121-
_sentryGetServerSidePropsBaggage:
122-
'other=vendor,foo=bar,third=party,last=item,sentry-release=2.1.0,sentry-environment=myEnv',
119+
_sentryTraceData: 'c82b8554881b4d28ad977de04a4fb40a-a755953cd3394d5f-1',
120+
_sentryBaggage: 'other=vendor,foo=bar,third=party,last=item,sentry-release=2.1.0,sentry-environment=myEnv',
123121
},
124122
},
125123
true,
126124
{
127-
name: '/dynamic',
128-
op: 'pageload',
129-
tags: {
130-
'routing.instrumentation': 'next-router',
131-
},
132-
metadata: {
133-
source: 'route',
134-
baggage: [{ environment: 'myEnv', release: '2.1.0' }, '', true],
135-
},
136-
traceId: 'c82b8554881b4d28ad977de04a4fb40a',
137-
parentSpanId: 'a755953cd3394d5f',
138-
parentSampled: true,
139-
},
140-
],
141-
[
142-
'https://example.com/static',
143-
'/static',
144-
{},
145-
{
146-
pageProps: {
147-
_sentryGetStaticPropsTraceData: 'c82b8554881b4d28ad977de04a4fb40a-a755953cd3394d5f-1',
148-
_sentryGetStaticPropsBaggage:
149-
'other=vendor,foo=bar,third=party,last=item,sentry-release=2.1.0,sentry-environment=myEnv',
150-
},
151-
},
152-
true,
153-
{
154-
name: '/static',
125+
name: '/some-page',
155126
op: 'pageload',
156127
tags: {
157128
'routing.instrumentation': 'next-router',

0 commit comments

Comments
 (0)