[Bug]: http-client-js expand guards use truthy check, dropping falsy values like false and 0
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
- #10965 de @sugiruu — cerrado sin fusionar
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 68/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Tranquilo
- Stack tecnológico
- typescript
- Área
- api
Línea de trabajo
Comienza en el emisor de http-client-js, donde las claves de expansión de URI template generan spreads condicionales de objetos. Reproduce el problema con valores false, 0 y cadenas vacías; después, actualiza las guards para que se conserven los valores definidos y verifica que los valores undefined sigan omitiéndose.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- Java
- Estrellas
- 5.9k
- Forks
- 403
- Merge medio
- 2 d 10 h
- PR fusionados (30 d)
- 140
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la 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 microsoft/typespec
-
[Bug]: `@encode(string)` int64 default becomes `null`, and numeric examples ignore the encodingPosiblemente ocupada @Om-singhaI la tomó hace 17 días. Abiertobug compiler:core triaged:core
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
microsoft/typespec#12059 · 1 comentario · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
Http-client-js operation response on the client doesn't carry the return typePosiblemente ocupada @reginaldalfret la tomó hace 15 días. Abiertoemitter:client:js
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
microsoft/typespec#11853 · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
[Bug]: @terminalEvent on a model-payload variant emits an unconstrained oneOf branch in OpenAPI 3.2 SSE outputPosiblemente ocupada @Shubham-Padkonde la tomó hace 26 días. Abiertobug emitter:openapi3 triaged:core
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
microsoft/typespec#11747 · 1 comentario · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
[Bug]: [http-server-csharp] Model with a `Record<unknown>[]` property generates C# that does not compile (missing `using System.Text.Json.Nodes;`)Quizá libre de nuevo @nightcityblade la tomó hace 46 días y no hay ningún pull request abierto. Abiertobug emitter:service:csharp triaged:core
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
microsoft/typespec#11733 · 2 comentarios · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
emitter:client:java feature
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
microsoft/typespec#11076 · 1 comentario · 1 reacción ·
Los mantenedores suelen responder en 1 día
Todos los issues de microsoft/typespec
Issues similares
-
Triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
MinecraftForge/MinecraftForge#10902 · 1 comentario ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
refinedmods/refinedstorage2#1421 ·
-
StepExamBenchmarkTest runs a loop and prints a timing but asserts nothingPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertojules
Dificultad 1/5 Menos de una hora Aptitud para principiantes 82/100
open-learning-exchange/myplanet#18199 · 1 comentario ·
Los mantenedores suelen responder en 4 días
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 82/100
wikipathways/GPML2RDF#126 ·
-
Authorization 'Artifacts' is shown under category Run instead of Job in Authorization matrixAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
Los mantenedores suelen responder en 1 día