stream: allow returning null from pipeline tail

PR-URL: https://github.com/nodejs/node/pull/42078
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
This commit is contained in:
Robert Nagy 2022-02-25 14:31:20 +01:00 committed by GitHub
parent d5e94fa712
commit 1b47866a1d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 1 deletions

View File

@ -288,7 +288,9 @@ function pipelineImpl(streams, callback, opts) {
then.call(ret,
(val) => {
value = val;
pt.write(val);
if (val != null) {
pt.write(val);
}
if (end) {
pt.end();
}

View File

@ -1511,3 +1511,18 @@ const tsp = require('timers/promises');
assert.strictEqual(s.destroyed, true);
}));
}
{
const s = new PassThrough({ objectMode: true });
pipeline(async function*() {
await Promise.resolve();
yield 'hello';
yield 'world';
yield 'world';
}, s, async function(source) {
return null;
}, common.mustCall((err, val) => {
assert.strictEqual(err, undefined);
assert.strictEqual(val, null);
}));
}