TS SDK: failed procedure calls reject with a bare string instead of an Error
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 82/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- typescript
- Domaine
- devtools
Piste de recherche
Commence dans crates/bindings-typescript/src/sdk/db_connection_impl.ts, dans les callbacks de procédure de #callProcedureWithEncodedName et #callProcedureGeneric, où la branche d'échec rejette avec la chaîne brute result.value. Compare avec le chemin des reducers dans le même fichier, qui enveloppe la valeur dans une sous-classe d'Error. C'est terminé lorsque les deux chemins de procédure rejettent avec une Error portant le même message, et qu'une vérification Jest rejects.toThrow sur un appel de procédure échoué réussit.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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.
- Langage dominant
- Rust
- Étoiles
- 25.3k
- Forks
- 1.1k
- Merge moyen
- 3 j 31 min
- PR mergées (30 j)
- 66
Préparer son environnement
- Fournit un Dockerfile ou un fichier Docker Compose
- Propose un modèle de pull request
- Aucun guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de clockworklabs/SpacetimeDB
-
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
clockworklabs/SpacetimeDB#6314 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
TypeScript server `ctx.random()`: first draw of every transaction is heavily biased (signed shift in `pcg32` seeding)Peut-être pris @Tyagiquamar l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
clockworklabs/SpacetimeDB#6247 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
clockworklabs/SpacetimeDB#6146 ·
Les mainteneurs répondent en général sous 1 jour
-
CI flake: LintsOuverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
clockworklabs/SpacetimeDB#5985 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
clockworklabs/SpacetimeDB#5943 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de clockworklabs/SpacetimeDB
Issues similaires
-
Stack overflow in `check bans` with `include-dependencies = true` and a dev-dependency cycleOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
EmbarkStudios/cargo-deny#910 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
tursodatabase/turso#10054 ·
Les mainteneurs répondent en général sous 1 jour
-
build: Update rust versionPeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouvertedependencies
Difficulté 2/5 1-3 heures Accessibilité débutants 67/100
ibm-granite-community/granite-cli#229 ·
Les mainteneurs répondent en général sous 1 jour
-
setTargetAtTime booked ahead of time starts its curve early (values blow up before start_time)Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
orottier/web-audio-api-rs#658 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
aosama/astronomical#1318 ·
Les mainteneurs répondent en général sous 1 jour