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

Aperta Adatta ai principianti
#601 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
70/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
nodejs, typescript
Ambito
backend

Direzione di ricerca

Inizia da packages/adapter-posthog/src/index.ts, dove il predicato (value) => Boolean(value) viene eseguito su snapshot.getFlagPayload(key) sia per decide() sia per bulkDecide(). Sostituisci il controllo di veridicità in modo che i payload false, 0 e stringa vuota vengano mantenuti, mentre null e undefined continuano a ricadere sul valore di fallback, quindi aggiungi casi di regressione ai test dell'adapter. È completato quando questi sei casi di valore passano e tutti i test esistenti dell'adapter restano verdi.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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.

Lingua principale
TypeScript
Stelle
629
Fork
93
Merge medio
1g 15m
PR unite (30g)
25

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di vercel/flags

Tutte le issue di vercel/flags

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.