Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@datastream/core

Package Overview
Dependencies
Maintainers
1
Versions
51
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@datastream/core - npm Package Compare versions

Comparing version
0.1.5
to
0.1.6
+4
-4
index.web.mjs

@@ -163,4 +163,4 @@ const pipeline = async (streams, streamOptions = {}) => {

async transform(chunk, controller) {
const enqueue = (chunk2, encoding) => {
controller.enqueue(chunk2, encoding);
const enqueue = (chunk2) => {
controller.enqueue(chunk2);
};

@@ -171,4 +171,4 @@ await transform(chunk, enqueue);

if (flush) {
const enqueue = (chunk, encoding) => {
controller.enqueue(chunk, encoding);
const enqueue = (chunk) => {
controller.enqueue(chunk);
};

@@ -175,0 +175,0 @@ await flush(enqueue);

{
"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) => {\n\tconst value = [];\n\tfor await (const chunk of stream) {\n\t\tvalue.push(chunk);\n\t}\n\treturn value;\n};\n\nexport const streamToObject = async (stream) => {\n\tconst value = {};\n\tfor await (const chunk of stream) {\n\t\tObject.assign(value, chunk);\n\t}\n\treturn value;\n};\n\nexport const streamToString = async (stream) => {\n\tlet value = \"\";\n\tfor await (const chunk of stream) {\n\t\tvalue += chunk;\n\t}\n\treturn value;\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 queued = [];\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 * 1024;\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\t// TODO update to for(;;) loop, faster\n\t\t\t\t\tfor (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} 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\tmakeOptions(streamOptions),\n\t);\n\tstream.push = (chunk) => queued.push(chunk);\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\treturn new TransformStream(\n\t\t{\n\t\t\tstart() {},\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\tmakeOptions(streamOptions),\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\treturn new TransformStream(\n\t\t{\n\t\t\tstart() {},\n\t\t\tasync transform(chunk, controller) {\n\t\t\t\tconst enqueue = (chunk, encoding) => {\n\t\t\t\t\tcontroller.enqueue(chunk, encoding);\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, encoding) => {\n\t\t\t\t\t\tcontroller.enqueue(chunk, encoding);\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\tmakeOptions(streamOptions),\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\treturn new WritableStream(\n\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\tmakeOptions(streamOptions),\n\t);\n};\n\nexport const timeout = (ms, { signal } = {}) => {\n\tif (signal?.aborted) {\n\t\treturn Promise.reject(new Error(\"Aborted\", \"AbortError\"));\n\t}\n\treturn new Promise((resolve, reject) => {\n\t\tconst abortHandler = () => {\n\t\t\tclearTimeout(timeout);\n\t\t\treject(new Error(\"Aborted\", \"AbortError\"));\n\t\t};\n\t\tif (signal) signal.addEventListener(\"abort\", abortHandler);\n\t\tsetTimeout(() => {\n\t\t\tresolve();\n\t\t\tif (signal) signal.removeEventListener(\"abort\", abortHandler);\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) => {\n\tconst value = [];\n\tfor await (const chunk of stream) {\n\t\tvalue.push(chunk);\n\t}\n\treturn value;\n};\n\nexport const streamToObject = async (stream) => {\n\tconst value = {};\n\tfor await (const chunk of stream) {\n\t\tObject.assign(value, chunk);\n\t}\n\treturn value;\n};\n\nexport const streamToString = async (stream) => {\n\tlet value = \"\";\n\tfor await (const chunk of stream) {\n\t\tvalue += chunk;\n\t}\n\treturn value;\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 queued = [];\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 * 1024;\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\t// TODO update to for(;;) loop, faster\n\t\t\t\t\tfor (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} 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\tmakeOptions(streamOptions),\n\t);\n\tstream.push = (chunk) => queued.push(chunk);\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\treturn new TransformStream(\n\t\t{\n\t\t\tstart() {},\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\tmakeOptions(streamOptions),\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\treturn new TransformStream(\n\t\t{\n\t\t\tstart() {},\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\tmakeOptions(streamOptions),\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\treturn new WritableStream(\n\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\tmakeOptions(streamOptions),\n\t);\n};\n\nexport const timeout = (ms, { signal } = {}) => {\n\tif (signal?.aborted) {\n\t\treturn Promise.reject(new Error(\"Aborted\", \"AbortError\"));\n\t}\n\treturn new Promise((resolve, reject) => {\n\t\tconst abortHandler = () => {\n\t\t\tclearTimeout(timeout);\n\t\t\treject(new Error(\"Aborted\", \"AbortError\"));\n\t\t};\n\t\tif (signal) signal.addEventListener(\"abort\", abortHandler);\n\t\tsetTimeout(() => {\n\t\t\tresolve();\n\t\t\tif (signal) signal.removeEventListener(\"abort\", abortHandler);\n\t\t}, ms);\n\t});\n};\n"],
"mappings": "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",
"names": ["pipeline", "chunk"]
}
{
"name": "@datastream/core",
"version": "0.1.5",
"version": "0.1.6",
"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.1.5"
"@datastream/object": "0.1.6"
}
}