Mirror: 🎩 A tiny but capable push & pull stream library for TypeScript and Flow

Fix discrepancies to v4

Changed files
+4 -6
src
+2 -2
src/operators.ts
···
let talkback = talkbackPlaceholder;
source(signal => {
if (signal === SignalKind.End) {
-
sink(signal);
+
sink(SignalKind.End);
} else if (signal.tag === SignalKind.Start) {
talkback = signal[0];
sink(signal);
···
ended = true;
outerTalkback(TalkbackKind.Close);
}
-
while (innerTalkbacks.length) innerTalkbacks.pop()!(TalkbackKind.Close);
+
while (innerTalkbacks.length) innerTalkbacks.shift()!(TalkbackKind.Close);
} else {
if (!ended && !outerPulled) {
outerPulled = true;
+1 -1
src/sinks.ts
···
ended = true;
} else if (signal.tag === SignalKind.Start) {
(talkback = signal[0])(TalkbackKind.Pull);
-
} else if (!ended) {
+
} else {
values.push(signal[0]);
talkback(TalkbackKind.Pull);
}
+1 -3
src/sources.ts
···
} else if (looping) {
pulled = true;
} else {
-
pulled = true;
-
looping = true;
for (pulled = looping = true; pulled && !ended; current++) {
if (current < array.length) {
pulled = false;
···
},
complete() {
if (!ended) {
-
ended = false;
+
ended = true;
sink(SignalKind.End);
}
},