From fddf5776499ed5a27681c9899768b958ca128e8d Mon Sep 17 00:00:00 2001 From: Nicolas Hrubec Date: Mon, 12 Oct 2026 15:34:24 +0200 Subject: [PATCH] fix(hono): Expose runtime-specific SDK options Co-Authored-By: Codex --- packages/hono/src/bun/middleware.ts | 5 +++-- packages/hono/src/cloudflare/middleware.ts | 6 +++--- packages/hono/src/deno/middleware.ts | 5 +++-- packages/hono/src/node/middleware.ts | 5 +++-- packages/hono/test/bun/middleware.test.ts | 6 ++++-- packages/hono/test/cloudflare/middleware.test.ts | 8 ++++++-- packages/hono/test/deno/middleware.test.ts | 6 ++++-- packages/hono/test/node/sdk.test.ts | 4 ++++ 8 files changed, 30 insertions(+), 15 deletions(-) diff --git a/packages/hono/src/bun/middleware.ts b/packages/hono/src/bun/middleware.ts index 20c922c32c0c..0ca1a4e92def 100644 --- a/packages/hono/src/bun/middleware.ts +++ b/packages/hono/src/bun/middleware.ts @@ -1,10 +1,11 @@ -import { type BaseTransportOptions, debug, type Options } from '@sentry/core'; +import type { BunOptions } from '@sentry/bun'; +import { debug } from '@sentry/core'; import { init } from './sdk'; import { getConnInfo } from 'hono/bun'; import { applyHonoPatches, createHonoRequestMiddleware, type SentryHonoMiddlewareOptions } from '@sentry/server-utils'; import type { Env, Hono, MiddlewareHandler } from 'hono'; -export interface HonoBunOptions extends Options, SentryHonoMiddlewareOptions {} +export interface HonoBunOptions extends BunOptions, SentryHonoMiddlewareOptions {} /** * Sentry middleware for Hono running in a Bun runtime environment. diff --git a/packages/hono/src/cloudflare/middleware.ts b/packages/hono/src/cloudflare/middleware.ts index df009ccfb945..ef5349c7d7d6 100644 --- a/packages/hono/src/cloudflare/middleware.ts +++ b/packages/hono/src/cloudflare/middleware.ts @@ -1,5 +1,5 @@ -import { withSentry } from '@sentry/cloudflare'; -import { applySdkMetadata, type BaseTransportOptions, debug, type Options } from '@sentry/core'; +import { withSentry, type CloudflareOptions } from '@sentry/cloudflare'; +import { applySdkMetadata, debug } from '@sentry/core'; import { getConnInfo } from 'hono/cloudflare-workers'; import { applyHonoPatches, @@ -10,7 +10,7 @@ import type { Env, Hono, MiddlewareHandler } from 'hono'; import { buildFilteredIntegrations } from '../shared/buildFilteredIntegrations'; import { LOW_QUALITY_TRANSACTION_PATTERNS } from '../shared/lowQualityTransactionPatterns'; -export interface HonoCloudflareOptions extends Options, SentryHonoMiddlewareOptions {} +export interface HonoCloudflareOptions extends CloudflareOptions, SentryHonoMiddlewareOptions {} /** * Sentry middleware for Hono on Cloudflare Workers. diff --git a/packages/hono/src/deno/middleware.ts b/packages/hono/src/deno/middleware.ts index 1e63c24d9b65..8a39fc6ecbea 100644 --- a/packages/hono/src/deno/middleware.ts +++ b/packages/hono/src/deno/middleware.ts @@ -1,4 +1,5 @@ -import { type BaseTransportOptions, debug, type Options } from '@sentry/core'; +import { debug } from '@sentry/core'; +import type { DenoOptions } from '@sentry/deno'; import { init } from './sdk'; import { getConnInfo } from 'hono/deno'; import { @@ -8,7 +9,7 @@ import { } from '@sentry/server-utils/no-diagnostic-channels'; import type { Env, Hono, MiddlewareHandler } from 'hono'; -export interface HonoDenoOptions extends Options, SentryHonoMiddlewareOptions {} +export interface HonoDenoOptions extends DenoOptions, SentryHonoMiddlewareOptions {} /** * Sentry middleware for Hono running in a Deno runtime environment. diff --git a/packages/hono/src/node/middleware.ts b/packages/hono/src/node/middleware.ts index 0b4688ef72f4..0d052c6d72ed 100644 --- a/packages/hono/src/node/middleware.ts +++ b/packages/hono/src/node/middleware.ts @@ -1,9 +1,10 @@ -import { type BaseTransportOptions, consoleSandbox, debug, getClient, type Options } from '@sentry/core'; +import { consoleSandbox, debug, getClient } from '@sentry/core'; +import type { NodeOptions } from '@sentry/node'; import { getConnInfo } from '@hono/node-server/conninfo'; import { applyHonoPatches, createHonoRequestMiddleware, type SentryHonoMiddlewareOptions } from '@sentry/server-utils'; import type { Env, Hono, MiddlewareHandler } from 'hono'; -export interface HonoNodeOptions extends Options {} +export interface HonoNodeOptions extends NodeOptions {} /** * Sentry middleware for Hono applications running in a Node.js environment. diff --git a/packages/hono/test/bun/middleware.test.ts b/packages/hono/test/bun/middleware.test.ts index a8ce3baac746..ca8fe21d1b45 100644 --- a/packages/hono/test/bun/middleware.test.ts +++ b/packages/hono/test/bun/middleware.test.ts @@ -2,7 +2,7 @@ import * as SentryCore from '@sentry/core'; import { SDK_VERSION } from '@sentry/core'; import { Hono } from 'hono'; import { beforeEach, describe, expect, it, type Mock, vi } from 'vitest'; -import { sentry } from '../../src/bun/middleware'; +import { sentry, type HonoBunOptions } from '../../src/bun/middleware'; import { init } from '../../src/bun/sdk'; import { LOW_QUALITY_TRANSACTION_PATTERNS } from '../../src/shared/lowQualityTransactionPatterns'; @@ -102,7 +102,8 @@ describe('Hono Bun Middleware', () => { sampleRate: 0.5, tracesSampleRate: 1.0, debug: true, - }; + enableOpenTelemetrySetup: true, + } satisfies HonoBunOptions; sentry(app, options); @@ -113,6 +114,7 @@ describe('Hono Bun Middleware', () => { sampleRate: 0.5, tracesSampleRate: 1.0, debug: true, + enableOpenTelemetrySetup: true, }), ); }); diff --git a/packages/hono/test/cloudflare/middleware.test.ts b/packages/hono/test/cloudflare/middleware.test.ts index ea09300f3d96..7c50b2823dfa 100644 --- a/packages/hono/test/cloudflare/middleware.test.ts +++ b/packages/hono/test/cloudflare/middleware.test.ts @@ -3,7 +3,7 @@ import * as SentryCore from '@sentry/core'; import { SDK_VERSION } from '@sentry/core'; import { Hono } from 'hono'; import { beforeEach, describe, expect, it, type Mock, vi } from 'vitest'; -import { sentry } from '../../src/cloudflare/middleware'; +import { sentry, type HonoCloudflareOptions } from '../../src/cloudflare/middleware'; import { LOW_QUALITY_TRANSACTION_PATTERNS } from '../../src/shared/lowQualityTransactionPatterns'; vi.mock('@sentry/cloudflare', { spy: true }); @@ -82,7 +82,9 @@ describe('Hono Cloudflare Middleware', () => { sampleRate: 0.5, tracesSampleRate: 1.0, debug: true, - }; + enableOpenTelemetrySetup: true, + rpcTracePropagationBindings: ['ORDERS'], + } satisfies HonoCloudflareOptions; sentry(app, options); @@ -95,6 +97,8 @@ describe('Hono Cloudflare Middleware', () => { sampleRate: 0.5, tracesSampleRate: 1.0, debug: true, + enableOpenTelemetrySetup: true, + rpcTracePropagationBindings: ['ORDERS'], }); }); diff --git a/packages/hono/test/deno/middleware.test.ts b/packages/hono/test/deno/middleware.test.ts index 3da909433d72..bf19b51804b4 100644 --- a/packages/hono/test/deno/middleware.test.ts +++ b/packages/hono/test/deno/middleware.test.ts @@ -2,7 +2,7 @@ import * as SentryCore from '@sentry/core'; import { SDK_VERSION } from '@sentry/core'; import { Hono } from 'hono'; import { beforeEach, describe, expect, it, type Mock, vi } from 'vitest'; -import { sentry } from '../../src/deno/middleware'; +import { sentry, type HonoDenoOptions } from '../../src/deno/middleware'; import { init } from '../../src/deno/sdk'; import { LOW_QUALITY_TRANSACTION_PATTERNS } from '../../src/shared/lowQualityTransactionPatterns'; @@ -102,7 +102,8 @@ describe('Hono Deno Middleware', () => { sampleRate: 0.5, tracesSampleRate: 1.0, debug: true, - }; + enableOpenTelemetrySetup: false, + } satisfies HonoDenoOptions; sentry(app, options); @@ -113,6 +114,7 @@ describe('Hono Deno Middleware', () => { sampleRate: 0.5, tracesSampleRate: 1.0, debug: true, + enableOpenTelemetrySetup: false, }), ); }); diff --git a/packages/hono/test/node/sdk.test.ts b/packages/hono/test/node/sdk.test.ts index d5045d7ff343..f9b90c8f6dfd 100644 --- a/packages/hono/test/node/sdk.test.ts +++ b/packages/hono/test/node/sdk.test.ts @@ -82,6 +82,8 @@ describe('Hono Node SDK – init()', () => { sampleRate: 0.5, tracesSampleRate: 1.0, debug: true, + enableOpenTelemetrySetup: true, + transportOptions: { proxy: 'http://proxy.example.com:8080' }, }); expect(initNodeMock).toHaveBeenCalledWith( @@ -90,6 +92,8 @@ describe('Hono Node SDK – init()', () => { sampleRate: 0.5, tracesSampleRate: 1.0, debug: true, + enableOpenTelemetrySetup: true, + transportOptions: { proxy: 'http://proxy.example.com:8080' }, }), ); });