[Bug]: http-client-js expand guards use truthy check, dropping falsy values like false and 0
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
- #10965 của @sugiruu — đã đóng, không merge
Đá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
- 68/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Ít trao đổi
- Công nghệ
- typescript
- Lĩnh vực
- api
Hướng nghiên cứu
Bắt đầu trong emitter của http-client-js, nơi các khóa mở rộng URI template tạo ra các object spread có điều kiện. Tái hiện vấn đề với các giá trị false, 0 và chuỗi rỗng, sau đó cập nhật các guard để giữ lại các giá trị đã được định nghĩa và xác minh rằng các giá trị undefined vẫn bị loại bỏ.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Describe the bug
The http-client-js emitter generates truthy guards (&&) for URI template expand keys. This means falsy values like false, 0, and "" are silently dropped from the query string.
Reproduction
TypeSpec definition:
model ListParams {
@query isActive?: boolean;
@query page?: int32;
}
Generated code:
...(options?.isActive && { isActive: options.isActive }),
...(options?.page && { page: options.page }),
Calling with { isActive: false } or { page: 0 } drops the param entirely because false && { ... } and 0 && { ... } short-circuit.
Expected: Use nullish checks instead of truthy checks:
...(options?.isActive != undefined && { isActive: options.isActive }),
...(options?.page != undefined && { page: options.page }),
Versions: @typespec/[email protected], @typespec/[email protected]
Checklist
- Follow our Code of Conduct
- Check that there isn't already an issue that request the same bug to avoid creating a duplicate.
- Check that this is a concrete bug. For Q&A open a GitHub Discussion.
- The provided reproduction is a minimal reproducible example of the bug.
- Ngôn ngữ chính
- Java
- Star
- 5.9k
- Fork
- 403
- Merge trung bình
- 3 ngày 8 giờ
- Pull request đã merge (30 ngày)
- 101
Chuẩn bị môi trường
Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- 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.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của microsoft/typespec
-
[Bug]: `@encode(string)` int64 default becomes `null`, and numeric examples ignore the encodingCó thể đã có người làm @Om-singhaI đã nhận 16 ngày trước. Đang mởbug compiler:core triaged:core
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
microsoft/typespec#12059 · 1 bình luận · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Http-client-js operation response on the client doesn't carry the return typeCó thể đã có người làm @reginaldalfret đã nhận 14 ngày trước. Đang mởemitter:client:js
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
microsoft/typespec#11853 · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Bug]: @terminalEvent on a model-payload variant emits an unconstrained oneOf branch in OpenAPI 3.2 SSE outputCó thể đã có người làm @Shubham-Padkonde đã nhận 25 ngày trước. Đang mởbug emitter:openapi3 triaged:core
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
microsoft/typespec#11747 · 1 bình luận · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Bug]: [http-server-csharp] Model with a `Record<unknown>[]` property generates C# that does not compile (missing `using System.Text.Json.Nodes;`)Có thể làm lại được @nightcityblade đã nhận 44 ngày trước và không có pull request nào đang mở. Đang mởbug emitter:service:csharp triaged:core
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
microsoft/typespec#11733 · 2 bình luận · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
emitter:client:java feature
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
microsoft/typespec#11076 · 1 bình luận · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của microsoft/typespec
Issue tương tự
-
area/plugin good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
kestra-io/plugin-soda#137 ·
-
area/plugin good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
kestra-io/plugin-aws#816 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
area/plugin good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
kestra-io/plugin-kestra#200 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug untriaged
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 92/100
opensearch-project/search-relevance#618 ·
Maintainer thường phản hồi trong vòng 3 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
apache/rocketmq-dashboard#6716 ·
Maintainer thường phản hồi trong vòng 3 ngày