Skip to content

Commit 4ef3bd5

Browse files
authored
feat(v8): Remove requestData deprecations (#10626)
1 parent 551aa86 commit 4ef3bd5

File tree

12 files changed

+507
-859
lines changed

12 files changed

+507
-859
lines changed

packages/core/src/integrations/requestdata.ts

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -50,20 +50,16 @@ const DEFAULT_OPTIONS = {
5050
email: true,
5151
},
5252
},
53-
transactionNamingScheme: 'methodPath',
53+
transactionNamingScheme: 'methodPath' as const,
5454
};
5555

5656
const INTEGRATION_NAME = 'RequestData';
5757

5858
const _requestDataIntegration = ((options: RequestDataIntegrationOptions = {}) => {
59-
const _addRequestData = addRequestDataToEvent;
6059
const _options: Required<RequestDataIntegrationOptions> = {
6160
...DEFAULT_OPTIONS,
6261
...options,
6362
include: {
64-
// @ts-expect-error It's mad because `method` isn't a known `include` key. (It's only here and not set by default in
65-
// `addRequestDataToEvent` for legacy reasons. TODO (v8): Change that.)
66-
method: true,
6763
...DEFAULT_OPTIONS.include,
6864
...options.include,
6965
user:
@@ -95,15 +91,9 @@ const _requestDataIntegration = ((options: RequestDataIntegrationOptions = {}) =
9591
return event;
9692
}
9793

98-
// The Express request handler takes a similar `include` option to that which can be passed to this integration.
99-
// If passed there, we store it in `sdkProcessingMetadata`. TODO(v8): Force express and GCP people to use this
100-
// integration, so that all of this passing and conversion isn't necessary
101-
const addRequestDataOptions =
102-
sdkProcessingMetadata.requestDataOptionsFromExpressHandler ||
103-
sdkProcessingMetadata.requestDataOptionsFromGCPWrapper ||
104-
convertReqDataIntegrationOptsToAddReqDataOpts(_options);
94+
const addRequestDataOptions = convertReqDataIntegrationOptsToAddReqDataOpts(_options);
10595

106-
const processedEvent = _addRequestData(event, req, addRequestDataOptions);
96+
const processedEvent = addRequestDataToEvent(event, req, addRequestDataOptions);
10797

10898
// Transaction events already have the right `transaction` value
10999
if (event.type === 'transaction' || transactionNamingScheme === 'handler') {
@@ -185,7 +175,7 @@ function convertReqDataIntegrationOptsToAddReqDataOpts(
185175
include: { ip, user, ...requestOptions },
186176
} = integrationOptions;
187177

188-
const requestIncludeKeys: string[] = [];
178+
const requestIncludeKeys: string[] = ['method'];
189179
for (const [key, value] of Object.entries(requestOptions)) {
190180
if (value) {
191181
requestIncludeKeys.push(key);

packages/node/src/handlers.ts

Lines changed: 3 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ import type { Span } from '@sentry/types';
1818
import type { AddRequestDataToEventOptions } from '@sentry/utils';
1919
import {
2020
addRequestDataToTransaction,
21-
dropUndefinedKeys,
2221
extractPathForTransaction,
2322
extractRequestData,
2423
isString,
@@ -29,8 +28,6 @@ import {
2928

3029
import type { NodeClient } from './client';
3130
import { DEBUG_BUILD } from './debug-build';
32-
// TODO (v8 / XXX) Remove this import
33-
import type { ParseRequestOptions } from './requestDataDeprecated';
3431
import { isAutoSessionTrackingEnabled } from './sdk';
3532

3633
/**
@@ -115,37 +112,9 @@ export function tracingHandler(): (
115112
};
116113
}
117114

118-
export type RequestHandlerOptions =
119-
// TODO (v8 / XXX) Remove ParseRequestOptions type and eslint override
120-
// eslint-disable-next-line deprecation/deprecation
121-
(ParseRequestOptions | AddRequestDataToEventOptions) & {
122-
flushTimeout?: number;
123-
};
124-
125-
/**
126-
* Backwards compatibility shim which can be removed in v8. Forces the given options to follow the
127-
* `AddRequestDataToEventOptions` interface.
128-
*
129-
* TODO (v8): Get rid of this, and stop passing `requestDataOptionsFromExpressHandler` to `setSDKProcessingMetadata`.
130-
*/
131-
function convertReqHandlerOptsToAddReqDataOpts(
132-
reqHandlerOptions: RequestHandlerOptions = {},
133-
): AddRequestDataToEventOptions | undefined {
134-
let addRequestDataOptions: AddRequestDataToEventOptions | undefined;
135-
136-
if ('include' in reqHandlerOptions) {
137-
addRequestDataOptions = { include: reqHandlerOptions.include };
138-
} else {
139-
// eslint-disable-next-line deprecation/deprecation
140-
const { ip, request, transaction, user } = reqHandlerOptions as ParseRequestOptions;
141-
142-
if (ip || request || transaction || user) {
143-
addRequestDataOptions = { include: dropUndefinedKeys({ ip, request, transaction, user }) };
144-
}
145-
}
146-
147-
return addRequestDataOptions;
148-
}
115+
export type RequestHandlerOptions = AddRequestDataToEventOptions & {
116+
flushTimeout?: number;
117+
};
149118

150119
/**
151120
* Express compatible request handler.
@@ -154,9 +123,6 @@ function convertReqHandlerOptsToAddReqDataOpts(
154123
export function requestHandler(
155124
options?: RequestHandlerOptions,
156125
): (req: http.IncomingMessage, res: http.ServerResponse, next: (error?: any) => void) => void {
157-
// TODO (v8): Get rid of this
158-
const requestDataOptions = convertReqHandlerOptsToAddReqDataOpts(options);
159-
160126
const client = getClient<NodeClient>();
161127
// Initialise an instance of SessionFlusher on the client when `autoSessionTracking` is enabled and the
162128
// `requestHandler` middleware is used indicating that we are running in SessionAggregates mode
@@ -193,8 +159,6 @@ export function requestHandler(
193159
const scope = getCurrentScope();
194160
scope.setSDKProcessingMetadata({
195161
request: req,
196-
// TODO (v8): Stop passing this
197-
requestDataOptionsFromExpressHandler: requestDataOptions,
198162
});
199163

200164
const client = getClient<NodeClient>();
@@ -372,7 +336,6 @@ export function trpcMiddleware(options: SentryTrpcMiddlewareOptions = {}) {
372336
}
373337

374338
if (isThenable(maybePromiseResult)) {
375-
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
376339
Promise.resolve(maybePromiseResult).then(
377340
nextResult => {
378341
captureIfError(nextResult as any);
@@ -389,9 +352,3 @@ export function trpcMiddleware(options: SentryTrpcMiddlewareOptions = {}) {
389352
return maybePromiseResult;
390353
};
391354
}
392-
393-
// TODO (v8 / #5257): Remove this
394-
// eslint-disable-next-line deprecation/deprecation
395-
export type { ParseRequestOptions, ExpressRequest } from './requestDataDeprecated';
396-
// eslint-disable-next-line deprecation/deprecation
397-
export { parseRequest, extractRequestData } from './requestDataDeprecated';

packages/node/src/requestDataDeprecated.ts

Lines changed: 0 additions & 54 deletions
This file was deleted.

packages/node/src/sdk.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
/* eslint-disable max-lines */
21
import {
32
endSession,
43
functionToStringIntegration,

packages/node/test/handlers.test.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,6 @@ describe('requestHandler', () => {
179179
const scope = getCurrentScope();
180180
expect((scope as any)._sdkProcessingMetadata).toEqual({
181181
request: req,
182-
requestDataOptionsFromExpressHandler: requestHandlerOptions,
183182
});
184183
});
185184
});

packages/node/test/integrations/requestdata.test.ts

Lines changed: 0 additions & 112 deletions
This file was deleted.

0 commit comments

Comments
 (0)