Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion packages/core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@
"@sentry-internal/eslint-config-sdk": "10.30.0",
"@sentry-internal/eslint-plugin-sdk": "10.30.0",
"@sentry-internal/typescript": "10.30.0",
"@sentry/wizard": "6.9.0",
"@sentry/wizard": "6.10.0",
"@testing-library/react-native": "^13.2.2",
"@types/jest": "^29.5.13",
"@types/node": "^20.9.3",
Expand Down
11 changes: 8 additions & 3 deletions packages/core/src/js/tools/metroMiddleware.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ const readFileAsync = promisify(readFile);
export const stackFramesContextMiddleware: Middleware = async (
request: IncomingMessage,
response: ServerResponse,
_next: () => void,
): Promise<void> => {
debug.log('[@sentry/react-native/metro] Received request for stack frames context.');
request.setEncoding('utf8');
Expand Down Expand Up @@ -89,11 +90,15 @@ const SENTRY_CONTEXT_REQUEST_PATH = `${SENTRY_MIDDLEWARE_PATH}/context`;
* Creates a middleware that adds source context to the Sentry formatted stack frames.
*/
export const createSentryMetroMiddleware = (middleware: Middleware): Middleware => {
return (request: IncomingMessage, response: ServerResponse, next: unknown) => {
return (request: IncomingMessage, response: ServerResponse, next: () => void) => {
if (request.url?.startsWith(SENTRY_CONTEXT_REQUEST_PATH)) {
return stackFramesContextMiddleware(request, response);
return stackFramesContextMiddleware(request, response, next);
}
return middleware(request, response, next);
return (middleware as (req: IncomingMessage, res: ServerResponse, next: () => void) => void)(
request,
response,
next,
);
};
};

Expand Down
2 changes: 1 addition & 1 deletion packages/core/test/tools/metroMiddleware.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ describe('metroMiddleware', () => {
} as any;
testedMiddleware(sentryRequest, response, next);
expect(defaultMiddleware).not.toHaveBeenCalled();
expect(spiedStackFramesContextMiddleware).toHaveBeenCalledWith(sentryRequest, response);
expect(spiedStackFramesContextMiddleware).toHaveBeenCalledWith(sentryRequest, response, next);
});

it('should call default middleware for non-sentry requests', () => {
Expand Down
Loading
Loading