Skip to content

Commit 5f9b9ce

Browse files
authored
feat(sveltekit): Convert sentryHandle to a factory function (#7975)
1 parent 619c4b0 commit 5f9b9ce

File tree

3 files changed

+17
-13
lines changed

3 files changed

+17
-13
lines changed

packages/sveltekit/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,10 +125,10 @@ The Sentry SvelteKit SDK mostly relies on [SvelteKit Hooks](https://kit.svelte.d
125125
// hooks.server.(js|ts)
126126
import { sentryHandle } from '@sentry/sveltekit';
127127

128-
export const handle = sentryHandle;
128+
export const handle = sentryHandle();
129129
// or alternatively, if you already have a handler defined, use the `sequence` function
130130
// see: https://kit.svelte.dev/docs/modules#sveltejs-kit-hooks-sequence
131-
// export const handle = sequence(sentryHandle, yourHandler);
131+
// export const handle = sequence(sentryHandle(), yourHandler());
132132
```
133133

134134
### 4. Configuring `load` Functions

packages/sveltekit/src/server/handle.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,17 @@ export const transformPageChunk: NonNullable<ResolveOptions['transformPageChunk'
5353
* // src/hooks.server.ts
5454
* import { sentryHandle } from '@sentry/sveltekit';
5555
*
56-
* export const handle = sentryHandle;
56+
* export const handle = sentryHandle();
5757
*
5858
* // Optionally use the sequence function to add additional handlers.
59-
* // export const handle = sequence(sentryHandle, yourCustomHandle);
59+
* // export const handle = sequence(sentryHandle(), yourCustomHandler);
6060
* ```
6161
*/
62-
export const sentryHandle: Handle = input => {
62+
export function sentryHandle(): Handle {
63+
return sentryRequestHandler;
64+
}
65+
66+
const sentryRequestHandler: Handle = input => {
6367
// if there is an active transaction, we know that this handle call is nested and hence
6468
// we don't create a new domain for it. If we created one, nested server calls would
6569
// create new transactions instead of adding a child span to the currently active span.

packages/sveltekit/test/server/handle.test.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ describe('handleSentry', () => {
120120
it('should return a response', async () => {
121121
let response: any = undefined;
122122
try {
123-
response = await sentryHandle({ event: mockEvent(), resolve: resolve(type, isError) });
123+
response = await sentryHandle()({ event: mockEvent(), resolve: resolve(type, isError) });
124124
} catch (e) {
125125
expect(e).toBeInstanceOf(Error);
126126
expect(e.message).toEqual(type);
@@ -136,7 +136,7 @@ describe('handleSentry', () => {
136136
});
137137

138138
try {
139-
await sentryHandle({ event: mockEvent(), resolve: resolve(type, isError) });
139+
await sentryHandle()({ event: mockEvent(), resolve: resolve(type, isError) });
140140
} catch (e) {
141141
//
142142
}
@@ -161,11 +161,11 @@ describe('handleSentry', () => {
161161
});
162162

163163
try {
164-
await sentryHandle({
164+
await sentryHandle()({
165165
event: mockEvent(),
166166
resolve: async _ => {
167167
// simulateing a nested load call:
168-
await sentryHandle({
168+
await sentryHandle()({
169169
event: mockEvent({ route: { id: 'api/users/details/[id]' } }),
170170
resolve: resolve(type, isError),
171171
});
@@ -216,7 +216,7 @@ describe('handleSentry', () => {
216216
});
217217

218218
try {
219-
await sentryHandle({ event, resolve: resolve(type, isError) });
219+
await sentryHandle()({ event, resolve: resolve(type, isError) });
220220
} catch (e) {
221221
//
222222
}
@@ -256,7 +256,7 @@ describe('handleSentry', () => {
256256
});
257257

258258
try {
259-
await sentryHandle({ event, resolve: resolve(type, isError) });
259+
await sentryHandle()({ event, resolve: resolve(type, isError) });
260260
} catch (e) {
261261
//
262262
}
@@ -280,7 +280,7 @@ describe('handleSentry', () => {
280280
});
281281

282282
try {
283-
await sentryHandle({ event: mockEvent(), resolve: resolve(type, isError) });
283+
await sentryHandle()({ event: mockEvent(), resolve: resolve(type, isError) });
284284
} catch (e) {
285285
expect(mockCaptureException).toBeCalledTimes(1);
286286
expect(addEventProcessorSpy).toBeCalledTimes(1);
@@ -296,7 +296,7 @@ describe('handleSentry', () => {
296296
const mockResolve = vi.fn().mockImplementation(resolve(type, isError));
297297
const event = mockEvent();
298298
try {
299-
await sentryHandle({ event, resolve: mockResolve });
299+
await sentryHandle()({ event, resolve: mockResolve });
300300
} catch (e) {
301301
expect(e).toBeInstanceOf(Error);
302302
expect(e.message).toEqual(type);

0 commit comments

Comments
 (0)