`beforeSend`: type `event_id` and `timestamp` as required
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 65/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- typescript
- Área
- developer-experience
Línea de trabajo
Empieza siguiendo _processEvent a través de prepareEvent hasta processBeforeSend, y localiza los tipos de callback beforeSend y beforeSendTransaction en @sentry/core. Actualiza sus tipos de parámetros para que los eventos preparados requieran event_id y timestamp, y luego ejecuta las comprobaciones de tipos de TypeScript y las pruebas relacionadas. El trabajo estará terminado cuando ambos callbacks expongan esos campos como obligatorios y los tipos de retorno existentes de los callbacks sigan sin cambios.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Problem Statement
beforeSend receives an ErrorEvent, which inherits event_id?: string and timestamp?: number from Event. But by the time beforeSend runs, both are always set: _processEvent only calls processBeforeSend with the result of prepareEvent, which does
event_id: event.event_id || hint.event_id || uuid4(),
timestamp: event.timestamp || dateTimestampInSeconds(),
So a common beforeSend use, like showing the user the event ID in a "report this error" link, needs a ! or a fallback that can never run.
Solution Brainstorm
Type the beforeSend parameter as ErrorEvent & { event_id: string; timestamp: number } (or a named "prepared event" type), and do the same for beforeSendTransaction. This only narrows a callback parameter, so existing callbacks still type-check, and the return type can stay ErrorEvent | null.
Additional Context
@sentry/core 11.6.0
Priority
React with 👍 to help prioritize this issue. Please use comments to provide useful context, avoiding +1 or me too, to help us triage it.
- Lenguaje dominante
- TypeScript
- Estrellas
- 8.8k
- Forks
- 1.9k
- Merge medio
- 1 d 10 h
- PR fusionados (30 d)
- 548
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de getsentry/sentry-javascript
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 80/100
getsentry/sentry-javascript#24860 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
javascript
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
getsentry/sentry-javascript#24200 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Cloudflare Workers javascript Tests
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
getsentry/sentry-javascript#24051 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Elysia events report as `sentry.javascript.bun`Posiblemente ocupada @Shubham-Padkonde la tomó hace 24 días. AbiertoBug Bun javascript
Dificultad 2/5 1-3 horas Aptitud para principiantes 92/100
getsentry/sentry-javascript#24045 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
vercel-edge: Missing exportsAbiertojavascript
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
getsentry/sentry-javascript#24043 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de getsentry/sentry-javascript
Issues similares
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 70/100
siyuan-note/siyuan#20517 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
NaturalIntelligence/fast-xml-parser#890 · 1 comentario ·
Los mantenedores suelen responder en 3 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
zsviczian/obsidian-excalidraw-plugin#3000 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
pnpm/get.pnpm.io#68 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
nuxt-modules/better-auth#578 · 2 comentarios ·
Los mantenedores suelen responder en 1 día