getsentry / getsentry/sentry-javascript
Elysia on Node reports `runtime: {name: 'bun', version: 'unknown'}`
- Ngôn ngữ chính
- TypeScript
- Star
- 8.7k
- Fork
- 1.8k
- Merge trung bình
- 1 ngày 17 giờ
- Pull request đã merge (30 ngày)
- 523
Mô tả
`elysia/src/sdk.ts:46` sets `runtime: getRuntime()`, which correctly returns `{name:'node'}` off Bun. Then `bun/src/sdk.ts:145` spreads the user options and overwrites `runtime` with its own hard-coded Bun value. Every Elysia-on-Node event is attributed to the wrong runtime. There is an `elysia-node` e2e app, so this configuration is supported.
**Work item** Make `bun/src/sdk.ts:148` respect a caller-supplied `runtime` (only default it when absent), matching `packages/node/src/sdk/client.ts:47`. Assert both runtimes in the Bun tests, and again in the Elysia tests.
**Prior art**: [#19269]() is the same bug one layer up: "`NodeClient` always overrides runtime context to 'node', ignoring Bun SDK's runtime option". It was fixed by making `NodeClient` respect a caller-supplied value, which is now `packages/node/src/sdk/client.ts:47`:
```ts
runtime: options.runtime || { name: 'node', version: global.process.version },
```
`packages/bun/src/sdk.ts:145` still does the unconditional override that #19269 removed from `NodeClient`, so any SDK wrapping `@sentry/bun` hits it. Apply the same one-line remedy there.
Hướng dẫn đóng góp
Hướng nghiên cứu
Start with packages/bun/src/sdk.ts:145-148 and compare its runtime handling with packages/node/src/sdk/client.ts:47. Update the Bun tests and the elysia-node e2e tests to assert both runtime values, including a caller-supplied runtime. Done means Elysia on Node reports Node while Bun still reports Bun.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- typescript
- Lĩnh vực
- backend
- Loại issue
- Lỗi
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức độ hoạt động
- Sôi nổi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức phù hợp với người mới
- 88/100