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

Đang mở Phù hợp với người mới
#601 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
70/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
nodejs, typescript
Lĩnh vực
backend

Hướng nghiên cứu

Bắt đầu từ packages/adapter-posthog/src/index.ts, nơi vị từ (value) => Boolean(value) được chạy trên snapshot.getFlagPayload(key) cho cả decide() và bulkDecide(). Thay thế phép kiểm tra truthy sao cho các payload false, 0 và chuỗi rỗng được giữ lại, trong khi null và undefined vẫn dùng giá trị dự phòng, sau đó thêm các trường hợp hồi quy vào bài kiểm thử của adapter. Hoàn thành khi sáu trường hợp giá trị này đều pass và toàn bộ bài kiểm thử adapter hiện có vẫn xanh.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

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.

Ngôn ngữ chính
TypeScript
Star
629
Fork
93
Merge trung bình
1 ngày 15 phút
Pull request đã merge (30 ngày)
25

Chuẩn bị môi trường

Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của vercel/flags

Tất cả issue của vercel/flags

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.