diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 00459abbe701..62b713e73def 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -947,6 +947,9 @@ jobs: uses: actions/setup-node@v4 with: node-version-file: 'dev-packages/e2e-tests/package.json' + - name: Set up Bun + if: matrix.test-application == 'node-exports-test-app' + uses: oven-sh/setup-bun@v1 - name: Restore caches uses: ./.github/actions/restore-cache env: diff --git a/dev-packages/e2e-tests/test-applications/node-exports-test-app/package.json b/dev-packages/e2e-tests/test-applications/node-exports-test-app/package.json index 056dd6836e61..8965bb7de982 100644 --- a/dev-packages/e2e-tests/test-applications/node-exports-test-app/package.json +++ b/dev-packages/e2e-tests/test-applications/node-exports-test-app/package.json @@ -5,8 +5,8 @@ "type": "module", "scripts": { "build": "tsc", - "start": "pnpm build && node dist/consistentExports.js", - "test": " node dist/consistentExports.js", + "start": "pnpm build && bun run ./dist/consistentExports.js", + "test": " bun run ./dist/consistentExports.js", "clean": "npx rimraf node_modules,pnpm-lock.yaml,dist", "test:build": "pnpm install && pnpm build", "test:assert": "pnpm test" diff --git a/dev-packages/e2e-tests/test-applications/node-exports-test-app/scripts/consistentExports.ts b/dev-packages/e2e-tests/test-applications/node-exports-test-app/scripts/consistentExports.ts index a488ef463412..c7afa6f53863 100644 --- a/dev-packages/e2e-tests/test-applications/node-exports-test-app/scripts/consistentExports.ts +++ b/dev-packages/e2e-tests/test-applications/node-exports-test-app/scripts/consistentExports.ts @@ -1,5 +1,5 @@ import * as SentryAstro from '@sentry/astro'; -// import * as SentryBun from '@sentry/bun'; +import * as SentryBun from '@sentry/bun'; import * as SentryNextJs from '@sentry/nextjs'; import * as SentryNode from '@sentry/node'; import * as SentryRemix from '@sentry/remix'; @@ -38,6 +38,17 @@ const DEPENDENTS: Dependent[] = [ package: '@sentry/astro', exports: Object.keys(SentryAstro), }, + { + package: '@sentry/bun', + exports: Object.keys(SentryBun), + ignoreExports: [ + // not supported in bun: + 'Handlers', + 'NodeClient', + 'hapiErrorPlugin', + 'makeNodeTransport', + ], + }, { package: '@sentry/nextjs', // Next.js doesn't require explicit exports, so we can just merge top level and `default` exports: diff --git a/packages/bun/src/index.ts b/packages/bun/src/index.ts index 9869a52caaa9..5742597485e0 100644 --- a/packages/bun/src/index.ts +++ b/packages/bun/src/index.ts @@ -89,7 +89,22 @@ export { parameterize, } from '@sentry/core'; export type { SpanStatusType } from '@sentry/core'; -export { autoDiscoverNodePerformanceMonitoringIntegrations, cron } from '@sentry/node'; +export { + // eslint-disable-next-line deprecation/deprecation + deepReadDirSync, + // eslint-disable-next-line deprecation/deprecation + enableAnrDetection, + // eslint-disable-next-line deprecation/deprecation + getModuleFromFilename, + DEFAULT_USER_INCLUDES, + autoDiscoverNodePerformanceMonitoringIntegrations, + cron, + createGetModuleFromFilename, + defaultStackParser, + extractRequestData, + getSentryRelease, + addRequestDataToEvent, +} from '@sentry/node'; export { BunClient } from './client'; export {