@datastream/core
Advanced tools
+15
-10
@@ -22,3 +22,5 @@ import { Readable, Transform, Writable } from "node:stream"; | ||
| const pipejoin = (streams, onError = (e) => { | ||
| throw e; | ||
| process.nextTick(() => { | ||
| throw e; | ||
| }); | ||
| }) => { | ||
@@ -53,3 +55,3 @@ const pipeline2 = streams.reduce((pipeline3, stream, idx) => { | ||
| let timestamp; | ||
| let startTimestamp; | ||
| const startTimestamp = Date.now(); | ||
| value.on("pause", () => { | ||
@@ -62,4 +64,2 @@ timestamp = Date.now(); | ||
| metrics[keys[i]].timeline.push({ timestamp, duration }); | ||
| } else { | ||
| startTimestamp = Date.now(); | ||
| } | ||
@@ -273,3 +273,2 @@ }); | ||
| const maxQueueSize = streamOptions.highWaterMark ?? 1024; | ||
| let queueSize = 0; | ||
| const stream = new Readable({ | ||
@@ -283,8 +282,7 @@ objectMode: streamOptions.objectMode ?? true, | ||
| stream.push = (chunk) => { | ||
| if (chunk !== null && queueSize >= maxQueueSize) { | ||
| if (chunk !== null && stream.readableLength >= maxQueueSize) { | ||
| throw new Error( | ||
| `createReadableStream queue size (${queueSize}) exceeds limit (${maxQueueSize})` | ||
| `createReadableStream queue size (${stream.readableLength}) exceeds limit (${maxQueueSize})` | ||
| ); | ||
| } | ||
| if (chunk !== null) queueSize++; | ||
| return nativePush(chunk); | ||
@@ -306,4 +304,5 @@ }; | ||
| const createReadableStreamFromString = (input, streamOptions = {}) => { | ||
| const size = streamOptions?.chunkSize ?? 16384; | ||
| if (size <= 0) throw new Error("chunkSize must be a positive number"); | ||
| function* iterator(input2) { | ||
| const size = streamOptions?.chunkSize ?? 16384; | ||
| let position = 0; | ||
@@ -319,4 +318,5 @@ const length = input2.length; | ||
| const createReadableStreamFromArrayBuffer = (input, streamOptions = {}) => { | ||
| const size = streamOptions?.chunkSize ?? 16384; | ||
| if (size <= 0) throw new Error("chunkSize must be a positive number"); | ||
| function* iterator(input2) { | ||
| const size = streamOptions?.chunkSize ?? 16384; | ||
| const bytes = new Uint8Array(input2); | ||
@@ -463,3 +463,6 @@ let position = 0; | ||
| return new Promise((resolve, reject) => { | ||
| let settled = false; | ||
| const abortHandler = () => { | ||
| if (settled) return; | ||
| settled = true; | ||
| clearTimeout(timerId); | ||
@@ -471,2 +474,4 @@ signal.removeEventListener("abort", abortHandler); | ||
| const timerId = setTimeout(() => { | ||
| if (settled) return; | ||
| settled = true; | ||
| if (signal) signal.removeEventListener("abort", abortHandler); | ||
@@ -473,0 +478,0 @@ resolve(); |
| { | ||
| "version": 3, | ||
| "sources": ["index.node.js"], | ||
| "sourcesContent": ["// Copyright 2026 will Farrell, and datastream contributors.\n// SPDX-License-Identifier: MIT\nimport { Readable, Transform, Writable } from \"node:stream\";\nimport { pipeline as pipelinePromise } from \"node:stream/promises\";\n\n// Node.js streams interpret push(null) as EOF.\n// Use a sentinel so null values flow through object-mode streams.\nconst NULL_SENTINEL = Symbol.for(\"@datastream/null\");\nconst toSafe = (v) => (v === null ? NULL_SENTINEL : v);\nconst fromSafe = (v) => (v === NULL_SENTINEL ? null : v);\n\nexport const pipeline = async (streams, streamOptions = {}) => {\n\tfor (let idx = 0, l = streams.length; idx < l; idx++) {\n\t\tif (typeof streams[idx].then === \"function\") {\n\t\t\tthrow new Error(`Promise instead of stream passed in at index ${idx}`);\n\t\t}\n\t}\n\t// Ensure stream ends with only writable\n\tconst lastStream = streams[streams.length - 1];\n\tif (isReadable(lastStream)) {\n\t\tstreamOptions.objectMode = lastStream._readableState.objectMode;\n\t\tstreams.push(createWritableStream(() => {}, streamOptions));\n\t}\n\tawait pipelinePromise(streams, streamOptions);\n\treturn result(streams);\n};\n\nexport const pipejoin = (\n\tstreams,\n\tonError = (e) => {\n\t\tthrow e;\n\t},\n) => {\n\tconst pipeline = streams.reduce((pipeline, stream, idx) => {\n\t\tif (typeof stream.then === \"function\") {\n\t\t\tthrow new Error(`Promise instead of stream passed in at index ${idx}`);\n\t\t}\n\t\treturn pipeline.pipe(stream).on(\"error\", onError);\n\t});\n\treturn pipeline;\n};\n\nexport const result = async (streams) => {\n\tconst output = {};\n\tfor (const stream of streams) {\n\t\tif (typeof stream.result === \"function\") {\n\t\t\tconst { key, value } = await stream.result();\n\t\t\tif (key) {\n\t\t\t\toutput[key] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn output;\n};\n\n// Not possible in WebStream\nexport const backpressureGauge = (streams) => {\n\tconst keys = Object.keys(streams);\n\tconst values = Object.values(streams);\n\tconst metrics = {};\n\tfor (let i = 0, l = values.length; i < l; i++) {\n\t\tconst value = values[i];\n\t\tmetrics[keys[i]] = { timeline: [], total: {} };\n\t\tlet timestamp;\n\t\tlet startTimestamp;\n\t\tvalue.on(\"pause\", () => {\n\t\t\ttimestamp = Date.now(); // process.hrtime.bigint()\n\t\t});\n\t\tvalue.on(\"resume\", () => {\n\t\t\tif (timestamp) {\n\t\t\t\t// Number.parseInt( (process.hrtime.bigint() - pauseTimestamp).toString() , 10 ) / 1_000_000 // ms\n\t\t\t\tconst duration = Date.now() - timestamp;\n\t\t\t\tmetrics[keys[i]].timeline.push({ timestamp, duration });\n\t\t\t} else {\n\t\t\t\tstartTimestamp = Date.now();\n\t\t\t}\n\t\t});\n\t\tvalue.on(\"end\", () => {\n\t\t\tconst duration = Date.now() - startTimestamp;\n\t\t\tmetrics[keys[i]].total = { timestamp: startTimestamp, duration };\n\t\t});\n\t}\n\treturn metrics;\n};\n\nexport const streamToArray = (stream, { maxBufferSize } = {}) => {\n\tif (typeof stream.on === \"function\") {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst value = [];\n\t\t\tlet size = 0;\n\t\t\tstream.on(\"data\", (chunk) => {\n\t\t\t\tif (maxBufferSize != null) {\n\t\t\t\t\tsize += chunk?.length ?? chunk?.byteLength ?? 1;\n\t\t\t\t\tif (size > maxBufferSize) {\n\t\t\t\t\t\tstream.destroy(\n\t\t\t\t\t\t\tnew Error(\n\t\t\t\t\t\t\t\t`streamToArray buffer exceeds maxBufferSize (${maxBufferSize})`,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvalue.push(fromSafe(chunk));\n\t\t\t});\n\t\t\tstream.on(\"end\", () => {\n\t\t\t\tresolve(value);\n\t\t\t});\n\t\t\tstream.on(\"error\", reject);\n\t\t});\n\t}\n\treturn (async () => {\n\t\tconst value = [];\n\t\tlet size = 0;\n\t\tfor await (const chunk of stream) {\n\t\t\tif (maxBufferSize != null) {\n\t\t\t\tsize += chunk?.length ?? chunk?.byteLength ?? 1;\n\t\t\t\tif (size > maxBufferSize) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`streamToArray buffer exceeds maxBufferSize (${maxBufferSize})`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tvalue.push(chunk);\n\t\t}\n\t\treturn value;\n\t})();\n};\n\nexport const streamToObject = (stream, { maxBufferSize } = {}) => {\n\tif (typeof stream.on === \"function\") {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst value = Object.create(null);\n\t\t\tlet size = 0;\n\t\t\tstream.on(\"data\", (chunk) => {\n\t\t\t\tif (maxBufferSize != null) {\n\t\t\t\t\tsize += chunk?.length ?? chunk?.byteLength ?? 1;\n\t\t\t\t\tif (size > maxBufferSize) {\n\t\t\t\t\t\tstream.destroy(\n\t\t\t\t\t\t\tnew Error(\n\t\t\t\t\t\t\t\t`streamToObject buffer exceeds maxBufferSize (${maxBufferSize})`,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tObject.assign(value, chunk);\n\t\t\t});\n\t\t\tstream.on(\"end\", () => {\n\t\t\t\tresolve({ ...value });\n\t\t\t});\n\t\t\tstream.on(\"error\", reject);\n\t\t});\n\t}\n\treturn (async () => {\n\t\tconst value = Object.create(null);\n\t\tlet size = 0;\n\t\tfor await (const chunk of stream) {\n\t\t\tif (maxBufferSize != null) {\n\t\t\t\tsize += chunk?.length ?? chunk?.byteLength ?? 1;\n\t\t\t\tif (size > maxBufferSize) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`streamToObject buffer exceeds maxBufferSize (${maxBufferSize})`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tObject.assign(value, chunk);\n\t\t}\n\t\treturn { ...value };\n\t})();\n};\n\nexport const streamToString = (stream, { maxBufferSize } = {}) => {\n\tif (typeof stream.on === \"function\") {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst chunks = [];\n\t\t\tlet size = 0;\n\t\t\tstream.on(\"data\", (chunk) => {\n\t\t\t\tif (maxBufferSize != null) {\n\t\t\t\t\tsize += chunk?.length ?? chunk?.byteLength ?? 0;\n\t\t\t\t\tif (size > maxBufferSize) {\n\t\t\t\t\t\tstream.destroy(\n\t\t\t\t\t\t\tnew Error(\n\t\t\t\t\t\t\t\t`streamToString buffer exceeds maxBufferSize (${maxBufferSize})`,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tchunks.push(chunk);\n\t\t\t});\n\t\t\tstream.on(\"end\", () => {\n\t\t\t\tresolve(chunks.join(\"\"));\n\t\t\t});\n\t\t\tstream.on(\"error\", reject);\n\t\t});\n\t}\n\treturn (async () => {\n\t\tconst chunks = [];\n\t\tlet size = 0;\n\t\tfor await (const chunk of stream) {\n\t\t\tif (maxBufferSize != null) {\n\t\t\t\tsize += chunk?.length ?? chunk?.byteLength ?? 0;\n\t\t\t\tif (size > maxBufferSize) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`streamToString buffer exceeds maxBufferSize (${maxBufferSize})`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tchunks.push(chunk);\n\t\t}\n\t\treturn chunks.join(\"\");\n\t})();\n};\n\nexport const streamToBuffer = (stream, { maxBufferSize } = {}) => {\n\tif (typeof stream.on === \"function\") {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst value = [];\n\t\t\tlet size = 0;\n\t\t\tstream.on(\"data\", (chunk) => {\n\t\t\t\tconst buf = Buffer.from(chunk);\n\t\t\t\tif (maxBufferSize != null) {\n\t\t\t\t\tsize += buf.length;\n\t\t\t\t\tif (size > maxBufferSize) {\n\t\t\t\t\t\tstream.destroy(\n\t\t\t\t\t\t\tnew Error(\n\t\t\t\t\t\t\t\t`streamToBuffer buffer exceeds maxBufferSize (${maxBufferSize})`,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvalue.push(buf);\n\t\t\t});\n\t\t\tstream.on(\"end\", () => {\n\t\t\t\tresolve(Buffer.concat(value));\n\t\t\t});\n\t\t\tstream.on(\"error\", reject);\n\t\t});\n\t}\n\treturn (async () => {\n\t\tconst value = [];\n\t\tlet size = 0;\n\t\tfor await (const chunk of stream) {\n\t\t\tconst buf = Buffer.from(chunk);\n\t\t\tif (maxBufferSize != null) {\n\t\t\t\tsize += buf.length;\n\t\t\t\tif (size > maxBufferSize) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`streamToBuffer buffer exceeds maxBufferSize (${maxBufferSize})`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tvalue.push(buf);\n\t\t}\n\t\treturn Buffer.concat(value);\n\t})();\n};\n\nexport const isReadable = (stream) => {\n\treturn stream instanceof Readable;\n};\n\nexport const isWritable = (stream) => {\n\treturn stream instanceof Writable;\n};\n\nexport const makeOptions = ({\n\thighWaterMark,\n\tchunkSize,\n\tobjectMode,\n\tsignal,\n\t...streamOptions\n} = {}) => {\n\tobjectMode ??= true;\n\treturn {\n\t\twritableHighWaterMark: highWaterMark,\n\t\twritableObjectMode: objectMode,\n\t\treadableObjectMode: objectMode,\n\t\treadableHighWaterMark: highWaterMark,\n\t\thighWaterMark,\n\t\tchunkSize,\n\t\tobjectMode,\n\t\tsignal,\n\t\t...streamOptions,\n\t};\n};\n\nexport const createReadableStream = (input, streamOptions = {}) => {\n\tif (input === undefined) {\n\t\tconst maxQueueSize = streamOptions.highWaterMark ?? 1024;\n\t\tlet queueSize = 0;\n\t\tconst stream = new Readable({\n\t\t\tobjectMode: streamOptions.objectMode ?? true,\n\t\t\thighWaterMark: streamOptions.highWaterMark,\n\t\t\tread() {},\n\t\t});\n\t\tconst nativePush = Readable.prototype.push.bind(stream);\n\t\tstream.push = (chunk) => {\n\t\t\tif (chunk !== null && queueSize >= maxQueueSize) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`createReadableStream queue size (${queueSize}) exceeds limit (${maxQueueSize})`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (chunk !== null) queueSize++;\n\t\t\treturn nativePush(chunk);\n\t\t};\n\t\treturn stream;\n\t}\n\t// string doesn't chunk, and is slow\n\tif (typeof input === \"string\") {\n\t\treturn createReadableStreamFromString(input, streamOptions);\n\t}\n\tif (typeof input === \"object\" && input.byteLength) {\n\t\treturn createReadableStreamFromArrayBuffer(input, streamOptions);\n\t}\n\tif (Array.isArray(input)) {\n\t\treturn Readable.from(input.map(toSafe), streamOptions);\n\t}\n\treturn Readable.from(input, streamOptions);\n};\n\nexport const createReadableStreamFromString = (input, streamOptions = {}) => {\n\tfunction* iterator(input) {\n\t\tconst size = streamOptions?.chunkSize ?? 16_384; // 16KB\n\t\tlet position = 0;\n\t\tconst length = input.length;\n\t\twhile (position < length) {\n\t\t\tyield input.substring(position, position + size);\n\t\t\tposition += size;\n\t\t}\n\t}\n\treturn Readable.from(iterator(input), streamOptions);\n};\n\nexport const createReadableStreamFromArrayBuffer = (\n\tinput,\n\tstreamOptions = {},\n) => {\n\tfunction* iterator(input) {\n\t\tconst size = streamOptions?.chunkSize ?? 16_384; // 16KB\n\t\tconst bytes = new Uint8Array(input);\n\t\tlet position = 0;\n\t\tconst length = bytes.byteLength;\n\t\twhile (position < length) {\n\t\t\tconst nextPosition = position + size;\n\t\t\tyield bytes.subarray(position, nextPosition);\n\t\t\tposition += size;\n\t\t}\n\t}\n\treturn Readable.from(iterator(input), streamOptions);\n};\n\nexport const createPassThroughStream = (passThrough, flush, streamOptions) => {\n\tpassThrough ??= (chunk) => chunk;\n\tif (typeof flush !== \"function\") {\n\t\tstreamOptions = flush;\n\t\tflush = undefined;\n\t}\n\treturn new Transform({\n\t\t...makeOptions(streamOptions),\n\t\ttransform(chunk, _encoding, callback) {\n\t\t\ttry {\n\t\t\t\tconst result = passThrough(fromSafe(chunk));\n\t\t\t\tif (result != null && typeof result.then === \"function\") {\n\t\t\t\t\tresult.then(() => {\n\t\t\t\t\t\tthis.push(chunk);\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t}, callback);\n\t\t\t\t} else {\n\t\t\t\t\tthis.push(chunk);\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tcallback(e);\n\t\t\t}\n\t\t},\n\t\tflush(callback) {\n\t\t\ttry {\n\t\t\t\tif (flush) {\n\t\t\t\t\tconst result = flush();\n\t\t\t\t\tif (result != null && typeof result.then === \"function\") {\n\t\t\t\t\t\tresult.then(() => callback(), callback);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tcallback(e);\n\t\t\t}\n\t\t},\n\t});\n};\n\nexport const createTransformStream = (transform, flush, streamOptions) => {\n\ttransform ??= (chunk, enqueue) => enqueue(chunk);\n\tif (typeof flush !== \"function\") {\n\t\tstreamOptions = flush;\n\t\tflush = undefined;\n\t}\n\tconst stream = new Transform({\n\t\t...makeOptions(streamOptions),\n\t\ttransform(chunk, _encoding, callback) {\n\t\t\ttry {\n\t\t\t\tconst result = transform(fromSafe(chunk), enqueue);\n\t\t\t\tif (result != null && typeof result.then === \"function\") {\n\t\t\t\t\tresult.then(() => callback(), callback);\n\t\t\t\t} else {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tcallback(e);\n\t\t\t}\n\t\t},\n\t\tflush(callback) {\n\t\t\ttry {\n\t\t\t\tif (flush) {\n\t\t\t\t\tconst result = flush(enqueue);\n\t\t\t\t\tif (result != null && typeof result.then === \"function\") {\n\t\t\t\t\t\tresult.then(() => callback(), callback);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tcallback(e);\n\t\t\t}\n\t\t},\n\t});\n\tconst enqueue = (chunk, encoding) => {\n\t\tstream.push(toSafe(chunk), encoding);\n\t};\n\treturn stream;\n};\n\nexport const createWritableStream = (write, final, streamOptions) => {\n\twrite ??= () => {};\n\tif (typeof final !== \"function\") {\n\t\tstreamOptions = final;\n\t\tfinal = undefined;\n\t}\n\treturn new Writable({\n\t\t...makeOptions(streamOptions),\n\t\twrite(chunk, _encoding, callback) {\n\t\t\ttry {\n\t\t\t\tconst result = write(fromSafe(chunk));\n\t\t\t\tif (result != null && typeof result.then === \"function\") {\n\t\t\t\t\tresult.then(() => callback(), callback);\n\t\t\t\t} else {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tcallback(e);\n\t\t\t}\n\t\t},\n\t\tfinal(callback) {\n\t\t\ttry {\n\t\t\t\tif (final) {\n\t\t\t\t\tconst result = final();\n\t\t\t\t\tif (result != null && typeof result.then === \"function\") {\n\t\t\t\t\t\tresult.then(() => callback(), callback);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tcallback(e);\n\t\t\t}\n\t\t},\n\t});\n};\n\nexport const timeout = (ms, { signal } = {}) => {\n\tif (signal?.aborted) {\n\t\treturn Promise.reject(\n\t\t\tnew Error(\"Aborted\", { cause: { code: \"AbortError\" } }),\n\t\t);\n\t}\n\treturn new Promise((resolve, reject) => {\n\t\tconst abortHandler = () => {\n\t\t\tclearTimeout(timerId);\n\t\t\tsignal.removeEventListener(\"abort\", abortHandler);\n\t\t\treject(new Error(\"Aborted\", { cause: { code: \"AbortError\" } }));\n\t\t};\n\t\tif (signal) signal.addEventListener(\"abort\", abortHandler);\n\t\tconst timerId = setTimeout(() => {\n\t\t\tif (signal) signal.removeEventListener(\"abort\", abortHandler);\n\t\t\tresolve();\n\t\t}, ms);\n\t});\n};\n"], | ||
| "mappings": "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", | ||
| "sourcesContent": ["// Copyright 2026 will Farrell, and datastream contributors.\n// SPDX-License-Identifier: MIT\nimport { Readable, Transform, Writable } from \"node:stream\";\nimport { pipeline as pipelinePromise } from \"node:stream/promises\";\n\n// Node.js streams interpret push(null) as EOF.\n// Use a sentinel so null values flow through object-mode streams.\nconst NULL_SENTINEL = Symbol.for(\"@datastream/null\");\nconst toSafe = (v) => (v === null ? NULL_SENTINEL : v);\nconst fromSafe = (v) => (v === NULL_SENTINEL ? null : v);\n\nexport const pipeline = async (streams, streamOptions = {}) => {\n\tfor (let idx = 0, l = streams.length; idx < l; idx++) {\n\t\tif (typeof streams[idx].then === \"function\") {\n\t\t\tthrow new Error(`Promise instead of stream passed in at index ${idx}`);\n\t\t}\n\t}\n\t// Ensure stream ends with only writable\n\tconst lastStream = streams[streams.length - 1];\n\tif (isReadable(lastStream)) {\n\t\tstreamOptions.objectMode = lastStream._readableState.objectMode;\n\t\tstreams.push(createWritableStream(() => {}, streamOptions));\n\t}\n\tawait pipelinePromise(streams, streamOptions);\n\treturn result(streams);\n};\n\nexport const pipejoin = (\n\tstreams,\n\tonError = (e) => {\n\t\tprocess.nextTick(() => {\n\t\t\tthrow e;\n\t\t});\n\t},\n) => {\n\tconst pipeline = streams.reduce((pipeline, stream, idx) => {\n\t\tif (typeof stream.then === \"function\") {\n\t\t\tthrow new Error(`Promise instead of stream passed in at index ${idx}`);\n\t\t}\n\t\treturn pipeline.pipe(stream).on(\"error\", onError);\n\t});\n\treturn pipeline;\n};\n\nexport const result = async (streams) => {\n\tconst output = {};\n\tfor (const stream of streams) {\n\t\tif (typeof stream.result === \"function\") {\n\t\t\tconst { key, value } = await stream.result();\n\t\t\tif (key) {\n\t\t\t\toutput[key] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn output;\n};\n\n// Not possible in WebStream\nexport const backpressureGauge = (streams) => {\n\tconst keys = Object.keys(streams);\n\tconst values = Object.values(streams);\n\tconst metrics = {};\n\tfor (let i = 0, l = values.length; i < l; i++) {\n\t\tconst value = values[i];\n\t\tmetrics[keys[i]] = { timeline: [], total: {} };\n\t\tlet timestamp;\n\t\tconst startTimestamp = Date.now();\n\t\tvalue.on(\"pause\", () => {\n\t\t\ttimestamp = Date.now(); // process.hrtime.bigint()\n\t\t});\n\t\tvalue.on(\"resume\", () => {\n\t\t\tif (timestamp) {\n\t\t\t\t// Number.parseInt( (process.hrtime.bigint() - pauseTimestamp).toString() , 10 ) / 1_000_000 // ms\n\t\t\t\tconst duration = Date.now() - timestamp;\n\t\t\t\tmetrics[keys[i]].timeline.push({ timestamp, duration });\n\t\t\t}\n\t\t});\n\t\tvalue.on(\"end\", () => {\n\t\t\tconst duration = Date.now() - startTimestamp;\n\t\t\tmetrics[keys[i]].total = { timestamp: startTimestamp, duration };\n\t\t});\n\t}\n\treturn metrics;\n};\n\nexport const streamToArray = (stream, { maxBufferSize } = {}) => {\n\tif (typeof stream.on === \"function\") {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst value = [];\n\t\t\tlet size = 0;\n\t\t\tstream.on(\"data\", (chunk) => {\n\t\t\t\tif (maxBufferSize != null) {\n\t\t\t\t\tsize += chunk?.length ?? chunk?.byteLength ?? 1;\n\t\t\t\t\tif (size > maxBufferSize) {\n\t\t\t\t\t\tstream.destroy(\n\t\t\t\t\t\t\tnew Error(\n\t\t\t\t\t\t\t\t`streamToArray buffer exceeds maxBufferSize (${maxBufferSize})`,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvalue.push(fromSafe(chunk));\n\t\t\t});\n\t\t\tstream.on(\"end\", () => {\n\t\t\t\tresolve(value);\n\t\t\t});\n\t\t\tstream.on(\"error\", reject);\n\t\t});\n\t}\n\treturn (async () => {\n\t\tconst value = [];\n\t\tlet size = 0;\n\t\tfor await (const chunk of stream) {\n\t\t\tif (maxBufferSize != null) {\n\t\t\t\tsize += chunk?.length ?? chunk?.byteLength ?? 1;\n\t\t\t\tif (size > maxBufferSize) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`streamToArray buffer exceeds maxBufferSize (${maxBufferSize})`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tvalue.push(chunk);\n\t\t}\n\t\treturn value;\n\t})();\n};\n\nexport const streamToObject = (stream, { maxBufferSize } = {}) => {\n\tif (typeof stream.on === \"function\") {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst value = Object.create(null);\n\t\t\tlet size = 0;\n\t\t\tstream.on(\"data\", (chunk) => {\n\t\t\t\tif (maxBufferSize != null) {\n\t\t\t\t\tsize += chunk?.length ?? chunk?.byteLength ?? 1;\n\t\t\t\t\tif (size > maxBufferSize) {\n\t\t\t\t\t\tstream.destroy(\n\t\t\t\t\t\t\tnew Error(\n\t\t\t\t\t\t\t\t`streamToObject buffer exceeds maxBufferSize (${maxBufferSize})`,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tObject.assign(value, chunk);\n\t\t\t});\n\t\t\tstream.on(\"end\", () => {\n\t\t\t\tresolve({ ...value });\n\t\t\t});\n\t\t\tstream.on(\"error\", reject);\n\t\t});\n\t}\n\treturn (async () => {\n\t\tconst value = Object.create(null);\n\t\tlet size = 0;\n\t\tfor await (const chunk of stream) {\n\t\t\tif (maxBufferSize != null) {\n\t\t\t\tsize += chunk?.length ?? chunk?.byteLength ?? 1;\n\t\t\t\tif (size > maxBufferSize) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`streamToObject buffer exceeds maxBufferSize (${maxBufferSize})`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tObject.assign(value, chunk);\n\t\t}\n\t\treturn { ...value };\n\t})();\n};\n\nexport const streamToString = (stream, { maxBufferSize } = {}) => {\n\tif (typeof stream.on === \"function\") {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst chunks = [];\n\t\t\tlet size = 0;\n\t\t\tstream.on(\"data\", (chunk) => {\n\t\t\t\tif (maxBufferSize != null) {\n\t\t\t\t\tsize += chunk?.length ?? chunk?.byteLength ?? 0;\n\t\t\t\t\tif (size > maxBufferSize) {\n\t\t\t\t\t\tstream.destroy(\n\t\t\t\t\t\t\tnew Error(\n\t\t\t\t\t\t\t\t`streamToString buffer exceeds maxBufferSize (${maxBufferSize})`,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tchunks.push(chunk);\n\t\t\t});\n\t\t\tstream.on(\"end\", () => {\n\t\t\t\tresolve(chunks.join(\"\"));\n\t\t\t});\n\t\t\tstream.on(\"error\", reject);\n\t\t});\n\t}\n\treturn (async () => {\n\t\tconst chunks = [];\n\t\tlet size = 0;\n\t\tfor await (const chunk of stream) {\n\t\t\tif (maxBufferSize != null) {\n\t\t\t\tsize += chunk?.length ?? chunk?.byteLength ?? 0;\n\t\t\t\tif (size > maxBufferSize) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`streamToString buffer exceeds maxBufferSize (${maxBufferSize})`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tchunks.push(chunk);\n\t\t}\n\t\treturn chunks.join(\"\");\n\t})();\n};\n\nexport const streamToBuffer = (stream, { maxBufferSize } = {}) => {\n\tif (typeof stream.on === \"function\") {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst value = [];\n\t\t\tlet size = 0;\n\t\t\tstream.on(\"data\", (chunk) => {\n\t\t\t\tconst buf = Buffer.from(chunk);\n\t\t\t\tif (maxBufferSize != null) {\n\t\t\t\t\tsize += buf.length;\n\t\t\t\t\tif (size > maxBufferSize) {\n\t\t\t\t\t\tstream.destroy(\n\t\t\t\t\t\t\tnew Error(\n\t\t\t\t\t\t\t\t`streamToBuffer buffer exceeds maxBufferSize (${maxBufferSize})`,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvalue.push(buf);\n\t\t\t});\n\t\t\tstream.on(\"end\", () => {\n\t\t\t\tresolve(Buffer.concat(value));\n\t\t\t});\n\t\t\tstream.on(\"error\", reject);\n\t\t});\n\t}\n\treturn (async () => {\n\t\tconst value = [];\n\t\tlet size = 0;\n\t\tfor await (const chunk of stream) {\n\t\t\tconst buf = Buffer.from(chunk);\n\t\t\tif (maxBufferSize != null) {\n\t\t\t\tsize += buf.length;\n\t\t\t\tif (size > maxBufferSize) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`streamToBuffer buffer exceeds maxBufferSize (${maxBufferSize})`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tvalue.push(buf);\n\t\t}\n\t\treturn Buffer.concat(value);\n\t})();\n};\n\nexport const isReadable = (stream) => {\n\treturn stream instanceof Readable;\n};\n\nexport const isWritable = (stream) => {\n\treturn stream instanceof Writable;\n};\n\nexport const makeOptions = ({\n\thighWaterMark,\n\tchunkSize,\n\tobjectMode,\n\tsignal,\n\t...streamOptions\n} = {}) => {\n\tobjectMode ??= true;\n\treturn {\n\t\twritableHighWaterMark: highWaterMark,\n\t\twritableObjectMode: objectMode,\n\t\treadableObjectMode: objectMode,\n\t\treadableHighWaterMark: highWaterMark,\n\t\thighWaterMark,\n\t\tchunkSize,\n\t\tobjectMode,\n\t\tsignal,\n\t\t...streamOptions,\n\t};\n};\n\nexport const createReadableStream = (input, streamOptions = {}) => {\n\tif (input === undefined) {\n\t\tconst maxQueueSize = streamOptions.highWaterMark ?? 1024;\n\t\tconst stream = new Readable({\n\t\t\tobjectMode: streamOptions.objectMode ?? true,\n\t\t\thighWaterMark: streamOptions.highWaterMark,\n\t\t\tread() {},\n\t\t});\n\t\tconst nativePush = Readable.prototype.push.bind(stream);\n\t\tstream.push = (chunk) => {\n\t\t\tif (chunk !== null && stream.readableLength >= maxQueueSize) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`createReadableStream queue size (${stream.readableLength}) exceeds limit (${maxQueueSize})`,\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn nativePush(chunk);\n\t\t};\n\t\treturn stream;\n\t}\n\t// string doesn't chunk, and is slow\n\tif (typeof input === \"string\") {\n\t\treturn createReadableStreamFromString(input, streamOptions);\n\t}\n\tif (typeof input === \"object\" && input.byteLength) {\n\t\treturn createReadableStreamFromArrayBuffer(input, streamOptions);\n\t}\n\tif (Array.isArray(input)) {\n\t\treturn Readable.from(input.map(toSafe), streamOptions);\n\t}\n\treturn Readable.from(input, streamOptions);\n};\n\nexport const createReadableStreamFromString = (input, streamOptions = {}) => {\n\tconst size = streamOptions?.chunkSize ?? 16_384; // 16KB\n\tif (size <= 0) throw new Error(\"chunkSize must be a positive number\");\n\tfunction* iterator(input) {\n\t\tlet position = 0;\n\t\tconst length = input.length;\n\t\twhile (position < length) {\n\t\t\tyield input.substring(position, position + size);\n\t\t\tposition += size;\n\t\t}\n\t}\n\treturn Readable.from(iterator(input), streamOptions);\n};\n\nexport const createReadableStreamFromArrayBuffer = (\n\tinput,\n\tstreamOptions = {},\n) => {\n\tconst size = streamOptions?.chunkSize ?? 16_384; // 16KB\n\tif (size <= 0) throw new Error(\"chunkSize must be a positive number\");\n\tfunction* iterator(input) {\n\t\tconst bytes = new Uint8Array(input);\n\t\tlet position = 0;\n\t\tconst length = bytes.byteLength;\n\t\twhile (position < length) {\n\t\t\tconst nextPosition = position + size;\n\t\t\tyield bytes.subarray(position, nextPosition);\n\t\t\tposition += size;\n\t\t}\n\t}\n\treturn Readable.from(iterator(input), streamOptions);\n};\n\nexport const createPassThroughStream = (passThrough, flush, streamOptions) => {\n\tpassThrough ??= (chunk) => chunk;\n\tif (typeof flush !== \"function\") {\n\t\tstreamOptions = flush;\n\t\tflush = undefined;\n\t}\n\treturn new Transform({\n\t\t...makeOptions(streamOptions),\n\t\ttransform(chunk, _encoding, callback) {\n\t\t\ttry {\n\t\t\t\tconst result = passThrough(fromSafe(chunk));\n\t\t\t\tif (result != null && typeof result.then === \"function\") {\n\t\t\t\t\tresult.then(() => {\n\t\t\t\t\t\tthis.push(chunk);\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t}, callback);\n\t\t\t\t} else {\n\t\t\t\t\tthis.push(chunk);\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tcallback(e);\n\t\t\t}\n\t\t},\n\t\tflush(callback) {\n\t\t\ttry {\n\t\t\t\tif (flush) {\n\t\t\t\t\tconst result = flush();\n\t\t\t\t\tif (result != null && typeof result.then === \"function\") {\n\t\t\t\t\t\tresult.then(() => callback(), callback);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tcallback(e);\n\t\t\t}\n\t\t},\n\t});\n};\n\nexport const createTransformStream = (transform, flush, streamOptions) => {\n\ttransform ??= (chunk, enqueue) => enqueue(chunk);\n\tif (typeof flush !== \"function\") {\n\t\tstreamOptions = flush;\n\t\tflush = undefined;\n\t}\n\tconst stream = new Transform({\n\t\t...makeOptions(streamOptions),\n\t\ttransform(chunk, _encoding, callback) {\n\t\t\ttry {\n\t\t\t\tconst result = transform(fromSafe(chunk), enqueue);\n\t\t\t\tif (result != null && typeof result.then === \"function\") {\n\t\t\t\t\tresult.then(() => callback(), callback);\n\t\t\t\t} else {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tcallback(e);\n\t\t\t}\n\t\t},\n\t\tflush(callback) {\n\t\t\ttry {\n\t\t\t\tif (flush) {\n\t\t\t\t\tconst result = flush(enqueue);\n\t\t\t\t\tif (result != null && typeof result.then === \"function\") {\n\t\t\t\t\t\tresult.then(() => callback(), callback);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tcallback(e);\n\t\t\t}\n\t\t},\n\t});\n\tconst enqueue = (chunk, encoding) => {\n\t\tstream.push(toSafe(chunk), encoding);\n\t};\n\treturn stream;\n};\n\nexport const createWritableStream = (write, final, streamOptions) => {\n\twrite ??= () => {};\n\tif (typeof final !== \"function\") {\n\t\tstreamOptions = final;\n\t\tfinal = undefined;\n\t}\n\treturn new Writable({\n\t\t...makeOptions(streamOptions),\n\t\twrite(chunk, _encoding, callback) {\n\t\t\ttry {\n\t\t\t\tconst result = write(fromSafe(chunk));\n\t\t\t\tif (result != null && typeof result.then === \"function\") {\n\t\t\t\t\tresult.then(() => callback(), callback);\n\t\t\t\t} else {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tcallback(e);\n\t\t\t}\n\t\t},\n\t\tfinal(callback) {\n\t\t\ttry {\n\t\t\t\tif (final) {\n\t\t\t\t\tconst result = final();\n\t\t\t\t\tif (result != null && typeof result.then === \"function\") {\n\t\t\t\t\t\tresult.then(() => callback(), callback);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tcallback(e);\n\t\t\t}\n\t\t},\n\t});\n};\n\nexport const timeout = (ms, { signal } = {}) => {\n\tif (signal?.aborted) {\n\t\treturn Promise.reject(\n\t\t\tnew Error(\"Aborted\", { cause: { code: \"AbortError\" } }),\n\t\t);\n\t}\n\treturn new Promise((resolve, reject) => {\n\t\tlet settled = false;\n\t\tconst abortHandler = () => {\n\t\t\tif (settled) return;\n\t\t\tsettled = true;\n\t\t\tclearTimeout(timerId);\n\t\t\tsignal.removeEventListener(\"abort\", abortHandler);\n\t\t\treject(new Error(\"Aborted\", { cause: { code: \"AbortError\" } }));\n\t\t};\n\t\tif (signal) signal.addEventListener(\"abort\", abortHandler);\n\t\tconst timerId = setTimeout(() => {\n\t\t\tif (settled) return;\n\t\t\tsettled = true;\n\t\t\tif (signal) signal.removeEventListener(\"abort\", abortHandler);\n\t\t\tresolve();\n\t\t}, ms);\n\t});\n};\n"], | ||
| "mappings": "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", | ||
| "names": ["pipeline", "input", "result", "enqueue"] | ||
| } |
+10
-4
@@ -94,10 +94,11 @@ const pipeline = async (streams, streamOptions = {}) => { | ||
| } = {}) => { | ||
| const size = chunkSize != null ? () => chunkSize : void 0; | ||
| return { | ||
| writableStrategy: { | ||
| highWaterMark, | ||
| size: { chunk: chunkSize } | ||
| size | ||
| }, | ||
| readableStrategy: { | ||
| highWaterMark, | ||
| size: { chunk: chunkSize } | ||
| size | ||
| }, | ||
@@ -110,2 +111,4 @@ signal, | ||
| const maxQueueSize = streamOptions.highWaterMark ?? 1024; | ||
| const chunkSize = streamOptions?.chunkSize ?? 16384; | ||
| if (chunkSize <= 0) throw new Error("chunkSize must be a positive number"); | ||
| const queued = []; | ||
@@ -121,3 +124,2 @@ const { readableStrategy } = makeOptions(streamOptions); | ||
| if (typeof input === "string") { | ||
| const chunkSize = streamOptions?.chunkSize ?? 16384; | ||
| let position = 0; | ||
@@ -138,3 +140,2 @@ const length = input.length; | ||
| const bytes = new Uint8Array(input.buffer ?? input); | ||
| const chunkSize = streamOptions?.chunkSize ?? 16384; | ||
| let position = 0; | ||
@@ -290,3 +291,6 @@ const length = bytes.byteLength; | ||
| return new Promise((resolve, reject) => { | ||
| let settled = false; | ||
| const abortHandler = () => { | ||
| if (settled) return; | ||
| settled = true; | ||
| clearTimeout(timerId); | ||
@@ -298,2 +302,4 @@ signal.removeEventListener("abort", abortHandler); | ||
| const timerId = setTimeout(() => { | ||
| if (settled) return; | ||
| settled = true; | ||
| if (signal) signal.removeEventListener("abort", abortHandler); | ||
@@ -300,0 +306,0 @@ resolve(); |
| { | ||
| "version": 3, | ||
| "sources": ["index.web.js"], | ||
| "sourcesContent": ["// Copyright 2026 will Farrell, and datastream contributors.\n// SPDX-License-Identifier: MIT\n/* global ReadableStream, TransformStream, WritableStream */\n\nexport const pipeline = async (streams, streamOptions = {}) => {\n\t// Ensure stream ends with only writable\n\tconst lastStream = streams[streams.length - 1];\n\tif (isReadable(lastStream)) {\n\t\tstreams.push(createWritableStream(() => {}, streamOptions));\n\t}\n\n\tawait pipejoin(streams);\n\treturn result(streams);\n};\n\nexport const pipejoin = (streams) => {\n\tconst lastIndex = streams.length - 1;\n\treturn streams.reduce((pipeline, stream, idx) => {\n\t\tif (typeof stream.then === \"function\") {\n\t\t\tthrow new Error(`Promise instead of stream passed in at index ${idx}`);\n\t\t}\n\t\tif (idx === lastIndex && stream.getWriter) {\n\t\t\treturn pipeline.pipeTo(stream);\n\t\t}\n\t\treturn pipeline.pipeThrough(stream);\n\t});\n};\n\nexport const result = async (streams) => {\n\tconst output = {};\n\tfor (const stream of streams) {\n\t\tif (typeof stream.result === \"function\") {\n\t\t\tconst { key, value } = await stream.result();\n\t\t\tif (key) {\n\t\t\t\toutput[key] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn output;\n};\n\nexport const streamToArray = async (stream, { maxBufferSize } = {}) => {\n\tconst value = [];\n\tlet size = 0;\n\tfor await (const chunk of stream) {\n\t\tif (maxBufferSize != null) {\n\t\t\tsize += chunk?.length ?? chunk?.byteLength ?? 1;\n\t\t\tif (size > maxBufferSize) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`streamToArray buffer exceeds maxBufferSize (${maxBufferSize})`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tvalue.push(chunk);\n\t}\n\treturn value;\n};\n\nexport const streamToObject = async (stream, { maxBufferSize } = {}) => {\n\tconst value = Object.create(null);\n\tlet size = 0;\n\tfor await (const chunk of stream) {\n\t\tif (maxBufferSize != null) {\n\t\t\tsize += chunk?.length ?? chunk?.byteLength ?? 1;\n\t\t\tif (size > maxBufferSize) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`streamToObject buffer exceeds maxBufferSize (${maxBufferSize})`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tObject.assign(value, chunk);\n\t}\n\treturn { ...value };\n};\n\nexport const streamToString = async (stream, { maxBufferSize } = {}) => {\n\tconst chunks = [];\n\tlet size = 0;\n\tfor await (const chunk of stream) {\n\t\tif (maxBufferSize != null) {\n\t\t\tsize += chunk?.length ?? chunk?.byteLength ?? 0;\n\t\t\tif (size > maxBufferSize) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`streamToString buffer exceeds maxBufferSize (${maxBufferSize})`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tchunks.push(chunk);\n\t}\n\treturn chunks.join(\"\");\n};\n\nexport const isReadable = (stream) => {\n\treturn stream instanceof ReadableStream || !!stream.readable;\n};\n\nexport const isWritable = (stream) => {\n\treturn stream instanceof WritableStream || !!stream.writable;\n};\n\nexport const makeOptions = ({\n\thighWaterMark,\n\tchunkSize,\n\tsignal,\n\t...streamOptions\n} = {}) => {\n\treturn {\n\t\twritableStrategy: {\n\t\t\thighWaterMark,\n\t\t\tsize: { chunk: chunkSize },\n\t\t},\n\t\treadableStrategy: {\n\t\t\thighWaterMark,\n\t\t\tsize: { chunk: chunkSize },\n\t\t},\n\t\tsignal,\n\t\t...streamOptions,\n\t};\n};\n\nexport const createReadableStream = (input, streamOptions = {}) => {\n\tconst maxQueueSize = streamOptions.highWaterMark ?? 1024;\n\tconst queued = [];\n\tconst { readableStrategy } = makeOptions(streamOptions);\n\tconst stream = new ReadableStream(\n\t\t{\n\t\t\tasync start(controller) {\n\t\t\t\twhile (queued.length) {\n\t\t\t\t\tconst chunk = queued.shift();\n\t\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t\t}\n\t\t\t\tif (typeof input === \"string\") {\n\t\t\t\t\tconst chunkSize = streamOptions?.chunkSize ?? 16_384; // 16KB\n\t\t\t\t\tlet position = 0;\n\t\t\t\t\tconst length = input.length;\n\t\t\t\t\twhile (position < length) {\n\t\t\t\t\t\tconst chunk = input.substring(position, position + chunkSize);\n\t\t\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t\t\t\tposition += chunkSize;\n\t\t\t\t\t}\n\t\t\t\t\tcontroller.close();\n\t\t\t\t} else if (Array.isArray(input)) {\n\t\t\t\t\tfor (let i = 0, l = input.length; i < l; i++) {\n\t\t\t\t\t\tcontroller.enqueue(input[i]);\n\t\t\t\t\t}\n\t\t\t\t\tcontroller.close();\n\t\t\t\t} else if (typeof input === \"object\" && input.byteLength) {\n\t\t\t\t\tconst bytes = new Uint8Array(input.buffer ?? input);\n\t\t\t\t\tconst chunkSize = streamOptions?.chunkSize ?? 16_384; // 16KB\n\t\t\t\t\tlet position = 0;\n\t\t\t\t\tconst length = bytes.byteLength;\n\t\t\t\t\twhile (position < length) {\n\t\t\t\t\t\tcontroller.enqueue(bytes.subarray(position, position + chunkSize));\n\t\t\t\t\t\tposition += chunkSize;\n\t\t\t\t\t}\n\t\t\t\t\tcontroller.close();\n\t\t\t\t} else if ([\"function\", \"object\"].includes(typeof input)) {\n\t\t\t\t\tfor await (const chunk of input) {\n\t\t\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t\t\t}\n\t\t\t\t\tcontroller.close();\n\t\t\t\t}\n\t\t\t},\n\t\t\tpull(controller) {\n\t\t\t\twhile (queued.length) {\n\t\t\t\t\tconst chunk = queued.shift();\n\t\t\t\t\tif (chunk === null) {\n\t\t\t\t\t\tcontroller.close();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\treadableStrategy,\n\t);\n\tstream.push = (chunk) => {\n\t\tif (queued.length >= maxQueueSize) {\n\t\t\tthrow new Error(\n\t\t\t\t`createReadableStream queue size (${queued.length}) exceeds limit (${maxQueueSize})`,\n\t\t\t);\n\t\t}\n\t\tqueued.push(chunk);\n\t};\n\treturn stream;\n};\n\nexport const createPassThroughStream = (passThrough, flush, streamOptions) => {\n\tpassThrough ??= (_chunk) => {};\n\tif (typeof flush !== \"function\") {\n\t\tstreamOptions = flush;\n\t\tflush = undefined;\n\t}\n\tconst { signal } = streamOptions ?? {};\n\tconst { writableStrategy, readableStrategy } = makeOptions(streamOptions);\n\treturn new TransformStream(\n\t\t{\n\t\t\tstart(controller) {\n\t\t\t\tif (signal) {\n\t\t\t\t\tsignal.addEventListener(\"abort\", () => {\n\t\t\t\t\t\tcontroller.error(\n\t\t\t\t\t\t\tsignal.reason ?? new DOMException(\"Aborted\", \"AbortError\"),\n\t\t\t\t\t\t);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\t\t\tasync transform(chunk, controller) {\n\t\t\t\tawait passThrough(chunk);\n\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t},\n\t\t\tasync flush(controller) {\n\t\t\t\tif (flush) {\n\t\t\t\t\tawait flush();\n\t\t\t\t}\n\t\t\t\tcontroller.terminate();\n\t\t\t},\n\t\t},\n\t\twritableStrategy,\n\t\treadableStrategy,\n\t);\n};\n\nexport const createTransformStream = (transform, flush, streamOptions) => {\n\ttransform ??= (chunk, enqueue) => enqueue(chunk);\n\tif (typeof flush !== \"function\") {\n\t\tstreamOptions = flush;\n\t\tflush = undefined;\n\t}\n\tconst { signal } = streamOptions ?? {};\n\tconst { writableStrategy, readableStrategy } = makeOptions(streamOptions);\n\treturn new TransformStream(\n\t\t{\n\t\t\tstart(controller) {\n\t\t\t\tif (signal) {\n\t\t\t\t\tsignal.addEventListener(\"abort\", () => {\n\t\t\t\t\t\tcontroller.error(\n\t\t\t\t\t\t\tsignal.reason ?? new DOMException(\"Aborted\", \"AbortError\"),\n\t\t\t\t\t\t);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\t\t\tasync transform(chunk, controller) {\n\t\t\t\tconst enqueue = (chunk) => {\n\t\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t\t};\n\t\t\t\tawait transform(chunk, enqueue);\n\t\t\t},\n\t\t\tasync flush(controller) {\n\t\t\t\tif (flush) {\n\t\t\t\t\tconst enqueue = (chunk) => {\n\t\t\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t\t\t};\n\t\t\t\t\tawait flush(enqueue);\n\t\t\t\t}\n\t\t\t\tcontroller.terminate();\n\t\t\t},\n\t\t},\n\t\twritableStrategy,\n\t\treadableStrategy,\n\t);\n};\n\nexport const createWritableStream = (write, close, streamOptions) => {\n\twrite ??= () => {};\n\tif (typeof close !== \"function\") {\n\t\tstreamOptions = close;\n\t\tclose = undefined;\n\t}\n\tconst { signal } = streamOptions ?? {};\n\tconst { writableStrategy } = makeOptions(streamOptions);\n\treturn new WritableStream(\n\t\t{\n\t\t\tstart(controller) {\n\t\t\t\tif (signal) {\n\t\t\t\t\tsignal.addEventListener(\"abort\", () => {\n\t\t\t\t\t\tcontroller.error(\n\t\t\t\t\t\t\tsignal.reason ?? new DOMException(\"Aborted\", \"AbortError\"),\n\t\t\t\t\t\t);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\t\t\tasync write(chunk) {\n\t\t\t\tawait write(chunk);\n\t\t\t},\n\t\t\tasync close() {\n\t\t\t\tif (close) {\n\t\t\t\t\tawait close();\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\twritableStrategy,\n\t);\n};\n\nexport const timeout = (ms, { signal } = {}) => {\n\tif (signal?.aborted) {\n\t\treturn Promise.reject(\n\t\t\tnew Error(\"Aborted\", { cause: { code: \"AbortError\" } }),\n\t\t);\n\t}\n\treturn new Promise((resolve, reject) => {\n\t\tconst abortHandler = () => {\n\t\t\tclearTimeout(timerId);\n\t\t\tsignal.removeEventListener(\"abort\", abortHandler);\n\t\t\treject(new Error(\"Aborted\", { cause: { code: \"AbortError\" } }));\n\t\t};\n\t\tif (signal) signal.addEventListener(\"abort\", abortHandler);\n\t\tconst timerId = setTimeout(() => {\n\t\t\tif (signal) signal.removeEventListener(\"abort\", abortHandler);\n\t\t\tresolve();\n\t\t}, ms);\n\t});\n};\n"], | ||
| "mappings": "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", | ||
| "sourcesContent": ["// Copyright 2026 will Farrell, and datastream contributors.\n// SPDX-License-Identifier: MIT\n/* global ReadableStream, TransformStream, WritableStream */\n\nexport const pipeline = async (streams, streamOptions = {}) => {\n\t// Ensure stream ends with only writable\n\tconst lastStream = streams[streams.length - 1];\n\tif (isReadable(lastStream)) {\n\t\tstreams.push(createWritableStream(() => {}, streamOptions));\n\t}\n\n\tawait pipejoin(streams);\n\treturn result(streams);\n};\n\nexport const pipejoin = (streams) => {\n\tconst lastIndex = streams.length - 1;\n\treturn streams.reduce((pipeline, stream, idx) => {\n\t\tif (typeof stream.then === \"function\") {\n\t\t\tthrow new Error(`Promise instead of stream passed in at index ${idx}`);\n\t\t}\n\t\tif (idx === lastIndex && stream.getWriter) {\n\t\t\treturn pipeline.pipeTo(stream);\n\t\t}\n\t\treturn pipeline.pipeThrough(stream);\n\t});\n};\n\nexport const result = async (streams) => {\n\tconst output = {};\n\tfor (const stream of streams) {\n\t\tif (typeof stream.result === \"function\") {\n\t\t\tconst { key, value } = await stream.result();\n\t\t\tif (key) {\n\t\t\t\toutput[key] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn output;\n};\n\nexport const streamToArray = async (stream, { maxBufferSize } = {}) => {\n\tconst value = [];\n\tlet size = 0;\n\tfor await (const chunk of stream) {\n\t\tif (maxBufferSize != null) {\n\t\t\tsize += chunk?.length ?? chunk?.byteLength ?? 1;\n\t\t\tif (size > maxBufferSize) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`streamToArray buffer exceeds maxBufferSize (${maxBufferSize})`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tvalue.push(chunk);\n\t}\n\treturn value;\n};\n\nexport const streamToObject = async (stream, { maxBufferSize } = {}) => {\n\tconst value = Object.create(null);\n\tlet size = 0;\n\tfor await (const chunk of stream) {\n\t\tif (maxBufferSize != null) {\n\t\t\tsize += chunk?.length ?? chunk?.byteLength ?? 1;\n\t\t\tif (size > maxBufferSize) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`streamToObject buffer exceeds maxBufferSize (${maxBufferSize})`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tObject.assign(value, chunk);\n\t}\n\treturn { ...value };\n};\n\nexport const streamToString = async (stream, { maxBufferSize } = {}) => {\n\tconst chunks = [];\n\tlet size = 0;\n\tfor await (const chunk of stream) {\n\t\tif (maxBufferSize != null) {\n\t\t\tsize += chunk?.length ?? chunk?.byteLength ?? 0;\n\t\t\tif (size > maxBufferSize) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`streamToString buffer exceeds maxBufferSize (${maxBufferSize})`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tchunks.push(chunk);\n\t}\n\treturn chunks.join(\"\");\n};\n\nexport const isReadable = (stream) => {\n\treturn stream instanceof ReadableStream || !!stream.readable;\n};\n\nexport const isWritable = (stream) => {\n\treturn stream instanceof WritableStream || !!stream.writable;\n};\n\nexport const makeOptions = ({\n\thighWaterMark,\n\tchunkSize,\n\tsignal,\n\t...streamOptions\n} = {}) => {\n\tconst size = chunkSize != null ? () => chunkSize : undefined;\n\treturn {\n\t\twritableStrategy: {\n\t\t\thighWaterMark,\n\t\t\tsize,\n\t\t},\n\t\treadableStrategy: {\n\t\t\thighWaterMark,\n\t\t\tsize,\n\t\t},\n\t\tsignal,\n\t\t...streamOptions,\n\t};\n};\n\nexport const createReadableStream = (input, streamOptions = {}) => {\n\tconst maxQueueSize = streamOptions.highWaterMark ?? 1024;\n\tconst chunkSize = streamOptions?.chunkSize ?? 16_384; // 16KB\n\tif (chunkSize <= 0) throw new Error(\"chunkSize must be a positive number\");\n\tconst queued = [];\n\tconst { readableStrategy } = makeOptions(streamOptions);\n\tconst stream = new ReadableStream(\n\t\t{\n\t\t\tasync start(controller) {\n\t\t\t\twhile (queued.length) {\n\t\t\t\t\tconst chunk = queued.shift();\n\t\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t\t}\n\t\t\t\tif (typeof input === \"string\") {\n\t\t\t\t\tlet position = 0;\n\t\t\t\t\tconst length = input.length;\n\t\t\t\t\twhile (position < length) {\n\t\t\t\t\t\tconst chunk = input.substring(position, position + chunkSize);\n\t\t\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t\t\t\tposition += chunkSize;\n\t\t\t\t\t}\n\t\t\t\t\tcontroller.close();\n\t\t\t\t} else if (Array.isArray(input)) {\n\t\t\t\t\tfor (let i = 0, l = input.length; i < l; i++) {\n\t\t\t\t\t\tcontroller.enqueue(input[i]);\n\t\t\t\t\t}\n\t\t\t\t\tcontroller.close();\n\t\t\t\t} else if (typeof input === \"object\" && input.byteLength) {\n\t\t\t\t\tconst bytes = new Uint8Array(input.buffer ?? input);\n\t\t\t\t\tlet position = 0;\n\t\t\t\t\tconst length = bytes.byteLength;\n\t\t\t\t\twhile (position < length) {\n\t\t\t\t\t\tcontroller.enqueue(bytes.subarray(position, position + chunkSize));\n\t\t\t\t\t\tposition += chunkSize;\n\t\t\t\t\t}\n\t\t\t\t\tcontroller.close();\n\t\t\t\t} else if ([\"function\", \"object\"].includes(typeof input)) {\n\t\t\t\t\tfor await (const chunk of input) {\n\t\t\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t\t\t}\n\t\t\t\t\tcontroller.close();\n\t\t\t\t}\n\t\t\t},\n\t\t\tpull(controller) {\n\t\t\t\twhile (queued.length) {\n\t\t\t\t\tconst chunk = queued.shift();\n\t\t\t\t\tif (chunk === null) {\n\t\t\t\t\t\tcontroller.close();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\treadableStrategy,\n\t);\n\tstream.push = (chunk) => {\n\t\tif (queued.length >= maxQueueSize) {\n\t\t\tthrow new Error(\n\t\t\t\t`createReadableStream queue size (${queued.length}) exceeds limit (${maxQueueSize})`,\n\t\t\t);\n\t\t}\n\t\tqueued.push(chunk);\n\t};\n\treturn stream;\n};\n\nexport const createPassThroughStream = (passThrough, flush, streamOptions) => {\n\tpassThrough ??= (_chunk) => {};\n\tif (typeof flush !== \"function\") {\n\t\tstreamOptions = flush;\n\t\tflush = undefined;\n\t}\n\tconst { signal } = streamOptions ?? {};\n\tconst { writableStrategy, readableStrategy } = makeOptions(streamOptions);\n\treturn new TransformStream(\n\t\t{\n\t\t\tstart(controller) {\n\t\t\t\tif (signal) {\n\t\t\t\t\tsignal.addEventListener(\"abort\", () => {\n\t\t\t\t\t\tcontroller.error(\n\t\t\t\t\t\t\tsignal.reason ?? new DOMException(\"Aborted\", \"AbortError\"),\n\t\t\t\t\t\t);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\t\t\tasync transform(chunk, controller) {\n\t\t\t\tawait passThrough(chunk);\n\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t},\n\t\t\tasync flush(controller) {\n\t\t\t\tif (flush) {\n\t\t\t\t\tawait flush();\n\t\t\t\t}\n\t\t\t\tcontroller.terminate();\n\t\t\t},\n\t\t},\n\t\twritableStrategy,\n\t\treadableStrategy,\n\t);\n};\n\nexport const createTransformStream = (transform, flush, streamOptions) => {\n\ttransform ??= (chunk, enqueue) => enqueue(chunk);\n\tif (typeof flush !== \"function\") {\n\t\tstreamOptions = flush;\n\t\tflush = undefined;\n\t}\n\tconst { signal } = streamOptions ?? {};\n\tconst { writableStrategy, readableStrategy } = makeOptions(streamOptions);\n\treturn new TransformStream(\n\t\t{\n\t\t\tstart(controller) {\n\t\t\t\tif (signal) {\n\t\t\t\t\tsignal.addEventListener(\"abort\", () => {\n\t\t\t\t\t\tcontroller.error(\n\t\t\t\t\t\t\tsignal.reason ?? new DOMException(\"Aborted\", \"AbortError\"),\n\t\t\t\t\t\t);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\t\t\tasync transform(chunk, controller) {\n\t\t\t\tconst enqueue = (chunk) => {\n\t\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t\t};\n\t\t\t\tawait transform(chunk, enqueue);\n\t\t\t},\n\t\t\tasync flush(controller) {\n\t\t\t\tif (flush) {\n\t\t\t\t\tconst enqueue = (chunk) => {\n\t\t\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t\t\t};\n\t\t\t\t\tawait flush(enqueue);\n\t\t\t\t}\n\t\t\t\tcontroller.terminate();\n\t\t\t},\n\t\t},\n\t\twritableStrategy,\n\t\treadableStrategy,\n\t);\n};\n\nexport const createWritableStream = (write, close, streamOptions) => {\n\twrite ??= () => {};\n\tif (typeof close !== \"function\") {\n\t\tstreamOptions = close;\n\t\tclose = undefined;\n\t}\n\tconst { signal } = streamOptions ?? {};\n\tconst { writableStrategy } = makeOptions(streamOptions);\n\treturn new WritableStream(\n\t\t{\n\t\t\tstart(controller) {\n\t\t\t\tif (signal) {\n\t\t\t\t\tsignal.addEventListener(\"abort\", () => {\n\t\t\t\t\t\tcontroller.error(\n\t\t\t\t\t\t\tsignal.reason ?? new DOMException(\"Aborted\", \"AbortError\"),\n\t\t\t\t\t\t);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\t\t\tasync write(chunk) {\n\t\t\t\tawait write(chunk);\n\t\t\t},\n\t\t\tasync close() {\n\t\t\t\tif (close) {\n\t\t\t\t\tawait close();\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\twritableStrategy,\n\t);\n};\n\nexport const timeout = (ms, { signal } = {}) => {\n\tif (signal?.aborted) {\n\t\treturn Promise.reject(\n\t\t\tnew Error(\"Aborted\", { cause: { code: \"AbortError\" } }),\n\t\t);\n\t}\n\treturn new Promise((resolve, reject) => {\n\t\tlet settled = false;\n\t\tconst abortHandler = () => {\n\t\t\tif (settled) return;\n\t\t\tsettled = true;\n\t\t\tclearTimeout(timerId);\n\t\t\tsignal.removeEventListener(\"abort\", abortHandler);\n\t\t\treject(new Error(\"Aborted\", { cause: { code: \"AbortError\" } }));\n\t\t};\n\t\tif (signal) signal.addEventListener(\"abort\", abortHandler);\n\t\tconst timerId = setTimeout(() => {\n\t\t\tif (settled) return;\n\t\t\tsettled = true;\n\t\t\tif (signal) signal.removeEventListener(\"abort\", abortHandler);\n\t\t\tresolve();\n\t\t}, ms);\n\t});\n};\n"], | ||
| "mappings": "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", | ||
| "names": ["pipeline", "chunk"] | ||
| } |
+2
-2
| { | ||
| "name": "@datastream/core", | ||
| "version": "0.3.0", | ||
| "version": "0.3.1", | ||
| "description": "Stream creation utilities and pipeline functions for Web Streams API and Node.js streams", | ||
@@ -64,4 +64,4 @@ "type": "module", | ||
| "devDependencies": { | ||
| "@datastream/object": "0.3.0" | ||
| "@datastream/object": "0.3.1" | ||
| } | ||
| } |
71749
1.38%931
1.2%