feat(smartduplex): improve backpressure handling and web/node stream interoperability

This commit is contained in:
2026-03-02 06:55:11 +00:00
parent 1262c48fe9
commit 2acf1972a2
23 changed files with 1416 additions and 511 deletions

View File

@@ -1,8 +1,5 @@
import * as plugins from './smartstream.plugins.js';
// interfaces
import { Transform } from 'stream';
export interface IErrorFunction {
(err: Error): any;
}
@@ -82,15 +79,17 @@ export class StreamWrapper {
this.streamStartedDeferred.resolve();
finalStream.on('end', () => {
done.resolve();
});
finalStream.on('close', () => {
done.resolve();
});
finalStream.on('finish', () => {
done.resolve();
});
let resolved = false;
const safeResolve = () => {
if (!resolved) {
resolved = true;
done.resolve();
}
};
finalStream.on('end', safeResolve);
finalStream.on('close', safeResolve);
finalStream.on('finish', safeResolve);
return done.promise;
}
}