TS SDK: failed procedure calls reject with a bare string instead of an Error
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 82/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- typescript
- 領域
- devtools
調査の方向性
crates/bindings-typescript/src/sdk/db_connection_impl.ts から始めてください。#callProcedureWithEncodedName と #callProcedureGeneric のプロシージャコールバックで、失敗分岐が生の result.value 文字列で reject しています。同じファイル内のリデューサーのパスと比較してください。リデューサーのパスは値を Error のサブクラスでラップしています。両方のプロシージャパスが同じメッセージを持つ Error で reject するようになり、失敗したプロシージャ呼び出しに対する Jest の rejects.toThrow チェックが通れば完了です。
索引モデルが issue の本文から書いたものです。
説明
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.
- 主要言語
- Rust
- スター
- 25.3k
- フォーク
- 1.1k
- 平均マージ
- 3日 22時間
- マージ済み PR(30日)
- 61
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートあり
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
clockworklabs/SpacetimeDB のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
clockworklabs/SpacetimeDB#6247 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
clockworklabs/SpacetimeDB#6146 ·
メンテナーはふだん 1 日以内に返信
-
C# codegen: generated `Equals(object)` on `[SpacetimeDB.Type]` structs recurses forever対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
clockworklabs/SpacetimeDB#6124 ·
メンテナーはふだん 1 日以内に返信
-
CI flake: Lintsオープン
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
clockworklabs/SpacetimeDB#5985 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
clockworklabs/SpacetimeDB#5943 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
clockworklabs/SpacetimeDB の issue をすべて見る
似ている issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信
-
dependencies effort:low flow:chore rust
難易度 2/5 1〜3時間 初心者へのやさしさ 64/100
jaroslawherod/micold-ai-ide#875 ·
メンテナーはふだん 1 日以内に返信
-
priority: low
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
storytold/photocraft#6286 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
Four problem loader browser tests fail on Windows対応中かも @Patriciaath999 が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
メンテナーはふだん 1 日以内に返信
-
Kazakh (kk_KZ) and Georgian (ka_GE) system locales get English instead of the shipped translationsオープンbug
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
メンテナーはふだん 1 日以内に返信