PostHog payload adapter drops false, zero and empty-string payloads

Abierto Apto para principiantes
#601 0 comentarios 0 reacciones 0 asignados Ver en GitHub

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
70/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
nodejs, typescript
Área
backend

Línea de trabajo

Empieza en packages/adapter-posthog/src/index.ts, donde el predicado (value) => Boolean(value) se ejecuta sobre snapshot.getFlagPayload(key) tanto para decide() como para bulkDecide(). Reemplaza la comprobación de veracidad para que los payloads false, 0 y cadena vacía se conserven, mientras que null y undefined siguen recurriendo al valor por defecto, y luego añade casos de regresión a los tests del adaptador. Está terminado cuando pasen estos seis casos de valores y todos los tests existentes del adaptador sigan en verde.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

The PostHog adapter uses a truthiness check when reading snapshot.getFlagPayload(key). Consequently, valid payloads false, 0 and "" are treated as absent. decide() returns the fallback instead of the payload, while bulkDecide() omits the entry.

Reproduced on current main 7baf8fc46845f3c5bd5bcad750c367e8db5595a1 with posthog-node 5.45.0, Node 22.23.4. The SDK snapshot preserves these values; the adapter discards them at (value) => Boolean(value) in packages/adapter-posthog/src/index.ts.

A private prototype replaces the predicate with value !== undefined && value !== null, preserving existing null/undefined fallback behavior. Six added value cases fail on unchanged production source; all 36 adapter tests pass with the prototype. The 156 core flags tests, adapter TypeScript check and builds also pass. Biome reports the same pre-existing constructor-mock warning on baseline and patched tests.

Would you welcome a small PR with this change and regression coverage? This was found during source review and tested with constructed examples, not a production incident. AI assistance was used for investigation, the prototype and local validation.

Lenguaje dominante
TypeScript
Estrellas
629
Forks
93
Merge medio
1 d 15 min
PR fusionados (30 d)
25

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de vercel/flags

Todos los issues de vercel/flags

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.