-
-
Notifications
You must be signed in to change notification settings - Fork 33.8k
Closed
Labels
docIssues and PRs related to the documentations.Issues and PRs related to the documentations.good first issueIssues that are suitable for first-time contributors.Issues that are suitable for first-time contributors.streamIssues and PRs related to the stream subsystem.Issues and PRs related to the stream subsystem.
Description
📗 API Reference Docs Problem
- Version: v14.7.0
- Platform: Windows 10 (64-bit)
- Subsystem:
stream
Location
Affected URL(s):
Description
The documentation states the following:
This is misleading, as an Array is a valid Iterable, yet using an Array as the first argument with multiple streams results in an error:
const stream = require("stream");
async function main() {
await stream.pipeline(
/*stream1*/ [1, 2, 3],
/*stream2*/ new stream.PassThrough({ objectMode: true }),
/*callback*/ () => { console.log("done"); });
}
main().catch(e => console.error(e));Output:
TypeError [ERR_INVALID_ARG_TYPE]: The "source" argument must be of type function or an instance of Stream, Iterable, or AsyncIterable. Received type number (1)
at Function.pipeline (internal/streams/pipeline.js:199:15)
at main (D:\dev\scratch\pipeline\index.js:4:18)
at Object.<anonymous> (D:\dev\scratch\pipeline\index.js:10:1)
at Module._compile (internal/modules/cjs/loader.js:1256:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1277:10)
at Module.load (internal/modules/cjs/loader.js:1105:32)
at Function.Module._load (internal/modules/cjs/loader.js:967:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:60:12)
at internal/main/run_main_module.js:17:47 {
code: 'ERR_INVALID_ARG_TYPE'
}
However, if you change [1, 2, 3] to [1, 2, 3].values() then the call evaluates successfully. It seems like stream.pipeline sees the first argument is an Array and always picks stream.pipeline(streams, callback), even if there is a destination and may be one or more transforms.
The way the parameters are represented is also confusing. It looks like they are sorted alphabetically rather than based on the "overload" being called, so the "Returns:" bullet points don't make much sense.
- I would like to work on this issue and submit a pull request.
Metadata
Metadata
Assignees
Labels
docIssues and PRs related to the documentations.Issues and PRs related to the documentations.good first issueIssues that are suitable for first-time contributors.Issues that are suitable for first-time contributors.streamIssues and PRs related to the stream subsystem.Issues and PRs related to the stream subsystem.
