2025-11-17 15:08:00 +00:00
|
|
|
|
# Docker Module - Development Hints
|
|
|
|
|
|
|
|
|
|
|
|
## smartrequest v5+ Migration (2025-11-17)
|
|
|
|
|
|
|
|
|
|
|
|
### Breaking Change
|
|
|
|
|
|
smartrequest v5.0.0+ returns web `ReadableStream` objects (Web Streams API) instead of Node.js streams.
|
|
|
|
|
|
|
|
|
|
|
|
### Solution Implemented
|
|
|
|
|
|
All streaming methods now convert web ReadableStreams to Node.js streams using:
|
|
|
|
|
|
```typescript
|
|
|
|
|
|
plugins.smartstream.nodewebhelpers.convertWebReadableToNodeReadable(webStream)
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### Files Modified
|
|
|
|
|
|
- `ts/classes.host.ts`:
|
|
|
|
|
|
- `requestStreaming()` - Converts web stream to Node.js stream before returning
|
|
|
|
|
|
- `getEventObservable()` - Works with converted Node.js stream
|
|
|
|
|
|
|
|
|
|
|
|
- `ts/classes.image.ts`:
|
|
|
|
|
|
- `createFromTarStream()` - Uses converted Node.js stream for event handling
|
|
|
|
|
|
- `exportToTarStream()` - Uses converted Node.js stream for backpressure management
|
|
|
|
|
|
|
|
|
|
|
|
### Testing
|
|
|
|
|
|
- Build: All 11 type errors resolved
|
|
|
|
|
|
- Tests: Node.js tests pass (DockerHost, DockerContainer, DockerImage, DockerImageStore)
|
|
|
|
|
|
|
|
|
|
|
|
### Notes
|
|
|
|
|
|
- The conversion maintains backward compatibility with existing code expecting Node.js stream methods (`.on()`, `.emit()`, `.pause()`, `.resume()`)
|
|
|
|
|
|
- smartstream's `nodewebhelpers` module provides bidirectional conversion utilities between web and Node.js streams
|