Skip to content

Commit b07517e

Browse files
committed
add backwards-compatibility-preserving wrappers to handlers
1 parent d869486 commit b07517e

File tree

2 files changed

+66
-0
lines changed

2 files changed

+66
-0
lines changed

packages/node/src/handlers.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,3 +239,9 @@ export function errorHandler(options?: {
239239
next(error);
240240
};
241241
}
242+
243+
// TODO (v8 / #5190): Remove this
244+
// eslint-disable-next-line deprecation/deprecation
245+
export type { ParseRequestOptions, ExpressRequest } from './requestDataDeprecated';
246+
// eslint-disable-next-line deprecation/deprecation
247+
export { parseRequest, extractRequestData } from './requestDataDeprecated';
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
/**
2+
* Deprecated functions which are slated for removal in v8. When the time comes, this entire file can be deleted.
3+
*
4+
* See XXXXXXX
5+
*/
6+
7+
/* eslint-disable deprecation/deprecation */
8+
/* eslint-disable @typescript-eslint/no-explicit-any */
9+
import { Event, ExtractedNodeRequestData } from '@sentry/types';
10+
import {
11+
addRequestDataToEvent,
12+
AddRequestDataToEventOptions,
13+
CrossPlatformRequest,
14+
extractRequestData as _extractRequestData,
15+
} from '@sentry/utils';
16+
import * as cookie from 'cookie';
17+
import * as url from 'url';
18+
19+
/**
20+
* @deprecated `Handlers.ExpressRequest` is deprecated and will be removed in v8. Use `CrossPlatformRequest` instead.
21+
*/
22+
export type ExpressRequest = CrossPlatformRequest;
23+
24+
/**
25+
* Normalizes data from the request object, accounting for framework differences.
26+
*
27+
* @deprecated `Handlers.extractRequestData` is deprecated and will be removed in v8. Use `extractRequestData` instead.
28+
*
29+
* @param req The request object from which to extract data
30+
* @param keys An optional array of keys to include in the normalized data.
31+
* @returns An object containing normalized request data
32+
*/
33+
export function extractRequestData(req: { [key: string]: any }, keys?: string[]): ExtractedNodeRequestData {
34+
return _extractRequestData(req, { include: keys, deps: { cookie, url } });
35+
}
36+
37+
/**
38+
* Options deciding what parts of the request to use when enhancing an event
39+
*
40+
* @deprecated `Handlers.ParseRequestOptions` is deprecated and will be removed in v8. Use
41+
* `AddRequestDataToEventOptions` in `@sentry/utils` instead.
42+
*/
43+
export type ParseRequestOptions = AddRequestDataToEventOptions['include'] & {
44+
serverName?: boolean;
45+
version?: boolean;
46+
};
47+
48+
/**
49+
* Enriches passed event with request data.
50+
*
51+
* @deprecated `Handlers.parseRequest` is deprecated and will be removed in v8. Use `addRequestDataToEvent` instead.
52+
*
53+
* @param event Will be mutated and enriched with req data
54+
* @param req Request object
55+
* @param options object containing flags to enable functionality
56+
* @hidden
57+
*/
58+
export function parseRequest(event: Event, req: ExpressRequest, options: ParseRequestOptions = {}): Event {
59+
return addRequestDataToEvent(event, req, { include: options, deps: { cookie, url } });
60+
}

0 commit comments

Comments
 (0)