TS SDK: failed procedure calls reject with a bare string instead of an Error
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
- 82/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ệ
- typescript
- Lĩnh vực
- devtools
Hướng nghiên cứu
Bắt đầu từ crates/bindings-typescript/src/sdk/db_connection_impl.ts, trong các callback procedure của #callProcedureWithEncodedName và #callProcedureGeneric, nơi nhánh lỗi reject bằng chuỗi thô result.value. So sánh với đường reducer trong cùng tệp, đường này bao giá trị trong một lớp con của Error. Hoàn thành khi cả hai đường procedure đều reject với một Error mang cùng thông báo, và kiểm tra Jest rejects.toThrow trên một lệnh gọi procedure thất bại vượt qua.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Version: spacetimedb npm 2.11.0 and 2.12.0; still present on master (1b67ca3).
Where: crates/bindings-typescript/src/sdk/db_connection_impl.ts, the procedure callbacks in #callProcedureWithEncodedName and #callProcedureGeneric:
if (result.tag === 'Ok') {
resolve(result.value);
} else {
reject(result.value); // a plain string
}
Reducer calls in the same file reject with new InternalError(result.value) (or SenderError), so await conn.reducers.x(...) always rejects with an Error, but await conn.procedures.x(...) rejects with a bare string when the host fails the call (for example invalid arguments for procedure ...: data too short ... after a module republish changes a parameter type).
Effect:
- No stack trace, and
error instanceof Errorchecks treat it as unknown. - Jest's
await expect(p).rejects.toThrow(...)reports "Received function did not throw" for a rejected procedure call.
Suggested fix: reject with new InternalError(result.value) in both procedure callbacks, matching the reducer path.
- Ngôn ngữ chính
- Rust
- Star
- 25.3k
- Fork
- 1.1k
- Merge trung bình
- 3 ngày 31 phút
- Pull request đã merge (30 ngày)
- 66
Chuẩn bị môi trường
- Có Dockerfile hoặc tệp Docker Compose
- Có mẫu pull request
- Không 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 clockworklabs/SpacetimeDB
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
clockworklabs/SpacetimeDB#6314 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
TypeScript server `ctx.random()`: first draw of every transaction is heavily biased (signed shift in `pcg32` seeding)Có thể đã có người làm @Tyagiquamar đã nhận 1 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
clockworklabs/SpacetimeDB#6247 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
clockworklabs/SpacetimeDB#6146 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
CI flake: LintsĐang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
clockworklabs/SpacetimeDB#5985 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
clockworklabs/SpacetimeDB#5943 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của clockworklabs/SpacetimeDB
Issue tương tự
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
pop-os/cosmic-comp#2956 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
area:release criticality:p3 documentation
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
registrystack/registry-stack#2085 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
libp2p/rust-libp2p#6694 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Stack overflow in `check bans` with `include-dependencies = true` and a dev-dependency cycleĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
EmbarkStudios/cargo-deny#910 ·