Comparing version 4.35.11 to 4.35.12
@@ -463,21 +463,28 @@ const scramjet = require("./"); | ||
const iteratorSymbol = Symbol.asyncIterator; | ||
let wroteAll = Promise.resolve(); | ||
return this.into( | ||
async (ref, out) => { | ||
if (iteratorSymbol && out[iteratorSymbol]) { | ||
const iterator = out[iteratorSymbol](); | ||
async (ref, chunk) => { | ||
const prevWrote = wroteAll; | ||
let res; | ||
wroteAll = new Promise(_res => res = _res); | ||
if (iteratorSymbol && chunk[iteratorSymbol]) { | ||
const iterator = chunk[iteratorSymbol](); | ||
await prevWrote; | ||
// eslint-disable-next-line no-constant-condition | ||
while (true) { | ||
const item = await iterator.next(); | ||
if (item.done) return; | ||
if (!ref.write(item.value)) await ref.whenDrained(); | ||
if (item.value && !ref.write(item.value)) await ref.whenDrained(); | ||
if (item.done) return res(); | ||
} | ||
} else { | ||
let last = true; | ||
for (const val of out) { | ||
await prevWrote; | ||
for (const val of chunk) { | ||
last = ref.write(val); | ||
if (!last) await ref.whenDrained(); | ||
} | ||
return last ? null : ref.whenDrained(); | ||
return res(); | ||
} | ||
@@ -484,0 +491,0 @@ }, |
{ | ||
"name": "scramjet", | ||
"version": "4.35.11", | ||
"version": "4.35.12", | ||
"description": "Lightweight and real-time data functional stream programming framework like event-stream, written in ES6 using async await with multi-threading and typescript support", | ||
@@ -95,4 +95,4 @@ "main": "lib/index.js", | ||
"rereadable-stream": "^1.4.5", | ||
"scramjet-core": "^4.31.9" | ||
"scramjet-core": "^4.31.12" | ||
} | ||
} |
317098
3059
Updatedscramjet-core@^4.31.12