From 9ad4ed15ee8211d36d8975a71cdd2c2121262072 Mon Sep 17 00:00:00 2001 From: mika <211269698+mikamikasuki@users.noreply.github.com> Date: Fri, 2 Oct 2026 16:17:42 -0700 Subject: [PATCH] fix(elysia): use Node transport on Node runtimes Co-Authored-By: GPT-6.1 Sol --- packages/elysia/src/sdk.ts | 3 ++- packages/elysia/test/sdk.test.ts | 14 ++++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/packages/elysia/src/sdk.ts b/packages/elysia/src/sdk.ts index f8d8dd9d8a35..be7225026a63 100644 --- a/packages/elysia/src/sdk.ts +++ b/packages/elysia/src/sdk.ts @@ -3,6 +3,7 @@ import { bunServerIntegration, getDefaultIntegrations as getBunDefaultIntegrations, makeFetchTransport, + makeNodeTransport, } from '@sentry/bun'; import type { Integration, Options } from '@sentry/core'; import { applySdkMetadata } from '@sentry/core'; @@ -50,7 +51,7 @@ export function init(userOptions: ElysiaOptions = {}): NodeClient | undefined { applySdkMetadata(userOptions, 'elysia', ['elysia', options.runtime.name]); - options.transport = options.transport || makeFetchTransport; + options.transport = options.transport || (options.runtime.name === 'bun' ? makeFetchTransport : makeNodeTransport); if (options.defaultIntegrations === undefined) { options.defaultIntegrations = getDefaultIntegrations(options); diff --git a/packages/elysia/test/sdk.test.ts b/packages/elysia/test/sdk.test.ts index 142c3f4ff456..2670802b21f3 100644 --- a/packages/elysia/test/sdk.test.ts +++ b/packages/elysia/test/sdk.test.ts @@ -5,6 +5,7 @@ const mockApplySdkMetadata = vi.fn(); const mockInitNode = vi.fn(); const mockGetBunDefaultIntegrations = vi.fn(() => [] as Integration[]); const mockMakeFetchTransport = vi.fn(); +const mockMakeNodeTransport = vi.fn(); vi.mock('@sentry/core', async importActual => { // eslint-disable-next-line @typescript-eslint/consistent-type-imports @@ -19,6 +20,7 @@ vi.mock('@sentry/bun', () => ({ init: mockInitNode, getDefaultIntegrations: mockGetBunDefaultIntegrations, makeFetchTransport: mockMakeFetchTransport, + makeNodeTransport: mockMakeNodeTransport, bunServerIntegration: () => ({ name: 'BunServer', setupOnce: vi.fn() }), })); @@ -53,16 +55,24 @@ describe('init', () => { ); }); - it('uses makeFetchTransport by default', () => { + it('uses makeNodeTransport by default on Node', () => { init({ dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0' }); expect(mockInitNode).toHaveBeenCalledWith( expect.objectContaining({ - transport: mockMakeFetchTransport, + transport: mockMakeNodeTransport, }), ); }); + it('uses makeFetchTransport by default on Bun', () => { + vi.stubGlobal('Bun', { version: '1.2.3' }); + + init({ dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0' }); + + expect(mockInitNode).toHaveBeenCalledWith(expect.objectContaining({ transport: mockMakeFetchTransport })); + }); + it('allows overriding transport', () => { const customTransport = vi.fn(); init({ dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0', transport: customTransport });