fix(DockerContainer): Fix getContainerById to return undefined for non-existent containers
This commit is contained in:
26
changelog.md
26
changelog.md
@@ -1,5 +1,14 @@
|
||||
# Changelog
|
||||
|
||||
## 2025-11-24 - 5.0.2 - fix(DockerContainer)
|
||||
Fix getContainerById to return undefined for non-existent containers
|
||||
|
||||
- Prevented creation of an invalid DockerContainer from Docker API error responses when a container does not exist.
|
||||
- Changed DockerContainer._fromId to use the list+find pattern and return Promise<DockerContainer | undefined>.
|
||||
- Updated DockerHost.getContainerById to return Promise<DockerContainer | undefined> for type safety and consistent behavior.
|
||||
- Added tests to verify undefined is returned for non-existent container IDs and that valid IDs return DockerContainer instances.
|
||||
- Bumped package version to 5.0.1 and updated changelog and readme hints to document the fix.
|
||||
|
||||
## 2025-11-24 - 5.0.0 - BREAKING CHANGE(DockerHost)
|
||||
Rename array-returning get* methods to list* on DockerHost and related resource classes; update docs, tests and changelog
|
||||
|
||||
@@ -10,6 +19,23 @@ Rename array-returning get* methods to list* on DockerHost and related resource
|
||||
- Bumped package version to 4.0.0.
|
||||
- Migration note: replace calls to get*() with list*() for methods that return multiple items (arrays). Single-item getters such as getContainerById or getNetworkByName remain unchanged.
|
||||
|
||||
## 2025-11-24 - 5.0.1 - fix(DockerContainer)
|
||||
Fix getContainerById() to return undefined instead of invalid container object when container doesn't exist
|
||||
|
||||
**Bug Fixed:**
|
||||
- `getContainerById()` was creating a DockerContainer object from error responses when a container didn't exist
|
||||
- The error object `{ message: "No such container: ..." }` was being passed to the constructor
|
||||
- Calling `.logs()` on this invalid container returned "[object Object]" instead of logs
|
||||
|
||||
**Solution:**
|
||||
- Changed `DockerContainer._fromId()` to use the list+filter pattern (consistent with all other resource getters)
|
||||
- Now returns `undefined` when container is not found (matches DockerImage, DockerNetwork, DockerService, DockerSecret behavior)
|
||||
- Updated return type to `Promise<DockerContainer | undefined>` for type safety
|
||||
- Added tests to verify undefined is returned for non-existent containers
|
||||
|
||||
**Migration:**
|
||||
No breaking changes - users should already be checking for undefined/null based on TypeScript types and documentation.
|
||||
|
||||
## 2025-11-24 - 4.0.0 - BREAKING CHANGE: Rename list methods for consistency
|
||||
|
||||
**Breaking Changes:**
|
||||
|
||||
Reference in New Issue
Block a user