Declare option fields as optional instead of wrapping the types in `Partial`
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
- 77/100
- Tipo de issue
- Refactorización
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- docker, node.js, typescript
Línea de trabajo
Lee las declaraciones de opciones y las firmas de los métodos en packages/testcontainers/src/types.ts, packages/testcontainers/src/compose-runtime/clients/compose/types.ts y packages/testcontainers/src/testcontainers.ts. Compara también los tipos públicos y del cliente ExecOptions, incluido el campo log del cliente. El trabajo estará completo cuando los campos de opciones documenten sus valores predeterminados como opcionales, los métodos acepten esos tipos directamente y los tipos y las llamadas afectados sigan siendo coherentes.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
What happens
Option types are declared with every field required, and each method then accepts Partial<...> and fills in defaults:
StopOptionsinstop(options?: Partial<StopOptions>)RestartOptionsinrestart(options?: Partial<RestartOptions>)ExecOptionsinexec(command, opts?: Partial<ExecOptions>)ComposeDownOptionsindown(options?: Partial<ComposeDownOptions>)
The exported type does not describe what a caller may pass, and a helper typed as StopOptions has to supply every field. The defaults (timeout: 0, remove, removeVolumes: true) are not visible in the type or in JSDoc.
There are also two ExecOptions types: the public one in types.ts and the container client's one in container-runtime/clients/container/types.ts, which adds log.
Expected
Option types declare optional fields as optional, with the default documented on each field, and methods accept the type directly.
Where
packages/testcontainers/src/test-container.tspackages/testcontainers/src/types.tspackages/testcontainers/src/container-runtime/clients/compose/types.ts
Notes
- Loosening the field types is compatible for callers. Code that reads a
StopOptionsvalue and relies on the fields being required would need a change.
Dependencies
- Nothing blocks this. It can start now.
- Lenguaje dominante
- TypeScript
- Estrellas
- 2.6k
- Forks
- 274
- Merge medio
- 1 d 14 h
- PR fusionados (30 d)
- 44
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Incluye un Dockerfile o un 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 testcontainers/testcontainers-node
-
enhancement minor
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
testcontainers/testcontainers-node#1539 ·
Los mantenedores suelen responder en 1 día
-
enhancement minor
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
testcontainers/testcontainers-node#1533 ·
Los mantenedores suelen responder en 1 día
-
enhancement minor
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
testcontainers/testcontainers-node#1529 ·
Los mantenedores suelen responder en 1 día
-
enhancement minor
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
testcontainers/testcontainers-node#1528 ·
Los mantenedores suelen responder en 1 día
-
bug patch
Dificultad 2/5 1-3 horas Aptitud para principiantes 79/100
testcontainers/testcontainers-node#1526 ·
Los mantenedores suelen responder en 1 día
Todos los issues de testcontainers/testcontainers-node
Issues similares
-
ai-driven-qa bug claude Minor
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
linagora/twake-contacts-frontend#241 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día
-
ui(ListToolbar): search takes the full row on a phone instead of sharing it with the result countAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
Los mantenedores suelen responder en 1 día
-
priority:high
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
ahmedkhaleel2004/gitdiagram#228 ·