TS SDK: failed procedure calls reject with a bare string instead of an Error
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 82/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- typescript
- Área
- devtools
Línea de trabajo
Empieza en crates/bindings-typescript/src/sdk/db_connection_impl.ts, en los callbacks de procedimiento de #callProcedureWithEncodedName y #callProcedureGeneric, donde la rama de fallo rechaza con la cadena cruda result.value. Compara con la ruta de reducers en el mismo archivo, que envuelve el valor en una subclase de Error. Está terminado cuando ambas rutas de procedimiento rechazan con un Error que lleva el mismo mensaje y una comprobación de Jest con rejects.toThrow sobre una llamada de procedimiento fallida pasa.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- Rust
- Estrellas
- 25.3k
- Forks
- 1.1k
- Merge medio
- 3 d 31 min
- PR fusionados (30 d)
- 66
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Tiene una plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de clockworklabs/SpacetimeDB
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
clockworklabs/SpacetimeDB#6314 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
TypeScript server `ctx.random()`: first draw of every transaction is heavily biased (signed shift in `pcg32` seeding)Posiblemente ocupada @Tyagiquamar la tomó hace 1 día. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
clockworklabs/SpacetimeDB#6247 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
clockworklabs/SpacetimeDB#6146 ·
Los mantenedores suelen responder en 1 día
-
CI flake: LintsAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
clockworklabs/SpacetimeDB#5985 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
clockworklabs/SpacetimeDB#5943 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de clockworklabs/SpacetimeDB
Issues similares
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
pop-os/cosmic-comp#2956 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
libp2p/rust-libp2p#6694 ·
Los mantenedores suelen responder en 1 día
-
Stack overflow in `check bans` with `include-dependencies = true` and a dev-dependency cycleAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
EmbarkStudios/cargo-deny#910 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
tursodatabase/turso#10054 ·
Los mantenedores suelen responder en 1 día
-
build: Update rust versionPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertodependencies
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
ibm-granite-community/granite-cli#229 ·
Los mantenedores suelen responder en 1 día