2 Commits

Author SHA1 Message Date
Tenere CI 718a7f24ba chore: add .gitignore (node_modules/)
CI / publish (push) Failing after 8s
CI / test (push) Successful in 7s
2026-07-20 21:02:05 -07:00
Tenere CI 741a606d00 docs+fix: add JSDoc and minor fixes (push-stream-lzd export LZD_PLUS_EMPTY_REFERENCE, push-stdio tests summary, push-handshake/stream-to-push-stream/push-stream-to-stream/push-websocket JSDoc)
CI / publish (push) Failing after 6s
CI / test (push) Successful in 13s
2026-07-20 14:48:28 -07:00
4 changed files with 40 additions and 1 deletions
+1
View File
@@ -0,0 +1 @@
node_modules/
+22
View File
@@ -1,5 +1,12 @@
import { Readable, Writable, Duplex } from 'stream'; import { Readable, Writable, Duplex } from 'stream';
/**
* stream-to-push-stream - Convert Node.js streams to push-streams
*
* Bridges Node.js Readable/Writable/Duplex streams into the push-stream protocol
* so they can be composed with `@push-stream-std/*` operators.
*/
class PushSource { class PushSource {
constructor(readable) { constructor(readable) {
this.readable = readable; this.readable = readable;
@@ -223,6 +230,11 @@ class PushDuplex {
} }
} }
/**
* Wrap a Node.js Readable stream as a push-stream source.
* @param {import('stream').Readable} readableStream
* @returns {object} A push-stream source
*/
export function source(readableStream) { export function source(readableStream) {
if (!(readableStream instanceof Readable)) { if (!(readableStream instanceof Readable)) {
throw new Error('Expected a Node.js Readable stream'); throw new Error('Expected a Node.js Readable stream');
@@ -230,6 +242,11 @@ export function source(readableStream) {
return new PushSource(readableStream); return new PushSource(readableStream);
} }
/**
* Wrap a Node.js Writable stream as a push-stream sink.
* @param {import('stream').Writable} writableStream
* @returns {object} A push-stream sink
*/
export function sink(writableStream) { export function sink(writableStream) {
if (!(writableStream instanceof Writable)) { if (!(writableStream instanceof Writable)) {
throw new Error('Expected a Node.js Writable stream'); throw new Error('Expected a Node.js Writable stream');
@@ -237,6 +254,11 @@ export function sink(writableStream) {
return new PushSink(writableStream); return new PushSink(writableStream);
} }
/**
* Wrap a Node.js Duplex stream as a push-stream duplex (`{ source, sink }`).
* @param {import('stream').Duplex} duplexStream
* @returns {{source: object, sink: object}} Push-stream duplex
*/
export function duplex(duplexStream) { export function duplex(duplexStream) {
if (!(duplexStream instanceof Duplex)) { if (!(duplexStream instanceof Duplex)) {
throw new Error('Expected a Node.js Duplex stream'); throw new Error('Expected a Node.js Duplex stream');
+16
View File
@@ -0,0 +1,16 @@
{
"name": "@push-stream-std/stream-to-push-stream",
"version": "1.0.3",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@push-stream-std/stream-to-push-stream",
"version": "1.0.3",
"license": "SEE LICENSE IN LICENSE",
"engines": {
"node": ">=22.0.0"
}
}
}
}
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "@push-stream-std/stream-to-push-stream", "name": "@push-stream-std/stream-to-push-stream",
"version": "1.0.2", "version": "1.0.4",
"description": "Convert Node.js streams to push-streams", "description": "Convert Node.js streams to push-streams",
"type": "module", "type": "module",
"main": "index.js", "main": "index.js",