caolan / caolan/highland

zip and error consumption

Open
#120 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
3.4k
Forks
145
PR merge metrics
No merged PRs in 30d

Description

From my reading of the zip implementation, when 2 streams S1 and S2 are zipped, errors are considered independent on each streams.

Indeed, each nextValue on S1 or S2 stream does

```
if (err) {
push(err);
nextValue(index, max, src, push, next);
}
```

so 2 streams [1,2,3] and [1,2,3] could lead to [[1,1], err, [3,2]] with a leftover of [3]

Am I correct in my reading of the code or are the 2 streams guaranteed to keep their one-to-one relationship leading to [[1,1], err, [3,3]] ?

If I am correct, could that be considered as a bug since zipping 2 streams seems to mean that they have some kind of semantic binding ?

Contributor guide

Open the contributing guide

Research direction

Start with the zip implementation and trace the nextValue error-handling path described in the issue. Determine whether errors preserve the streams’ one-to-one relationship, then check existing coverage around zip behavior. Done means the intended error semantics are decided and reflected in the relevant tests or documentation.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
stream-processing
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.