getsentry / getsentry/sentry-javascript
hono: Double `init()` behaves differently per runtime
- Lingua principale
- TypeScript
- Stelle
- 8.7k
- Fork
- 1.8k
- Merge medio
- 1g 17h
- PR unite (30g)
- 523
Descrizione
```
node : same client after 2nd init? true | release now: 1.0.0
bun : same client after 2nd init? false | release now: 2.0.0
(plus a console warning)
```
`hono/src/node/sdk.ts:15` returns the existing client and skips re-initialization. `hono/src/bun/sdk.ts:17` and `hono/src/deno/sdk.ts:17` warn and then re-initialize anyway, replacing the client. Anything buffered on the first client is dropped, and its integrations stay installed against a dead client.
The Hono docs tell users to init through the `sentry()` middleware, so a user who also calls `Sentry.init()` hits exactly this path.
**Work item.** Make all four entries behave the same way. Returning the existing client (the Node behavior) is the safer default. Keep the loud warning from bun/deno on all of them.
**Prior art **[#21176]() asked for the Bun middleware to follow the Node pattern. getsentry/sentry-javascript#21195 closed it by adding the warning only. The behavior divergence this item describes is what is left over: bun and deno warn and then re-initialize anyway.
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Start with hono/src/node/sdk.ts:15 and compare it with hono/src/bun/sdk.ts:17 and hono/src/deno/sdk.ts:17, then locate the fourth runtime entry. Check the initialization and warning behavior across all four entries. Done means every runtime warns on a second init while preserving and returning the existing client rather than replacing it.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- bun, deno, nodejs, typescript
- Ambito
- backend, observability
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Attiva
- Chiarezza
- Specificata chiaramente
- Idoneità per principianti
- 76/100