0.1.1 • Published 11 months ago
@kawaz/stream-bridge v0.1.1
@kawaz/stream-bridge
A utility library that provides bidirectional conversion between Node.js streams and Web Stream API streams.
Features
- Convert Node.js streams to Web Stream API streams
- Convert Web Stream API streams to Node.js streams
- Written in TypeScript for type safety
- Zero external runtime dependencies
- Support for all major stream types
Installation
# Using npm
npm install @kawaz/stream-bridge
# Using yarn
yarn add @kawaz/stream-bridge
# Using bun
bun add @kawaz/stream-bridgeUsage
Converting Node.js Streams to Web Streams
import { toReadableStream, toWritableStream, toTransformStream } from '@kawaz/stream-bridge';
import { Readable, Writable, Transform } from 'node:stream';
// Convert to ReadableStream
const nodeReadable = new Readable();
const webReadable = toReadableStream(nodeReadable);
// Convert to WritableStream
const nodeWritable = new Writable();
const webWritable = toWritableStream(nodeWritable);
// Convert to TransformStream
const nodeTransform = new Transform();
const webTransform = toTransformStream(nodeTransform);Converting Web Streams to Node.js Streams
import { toReadable, toWritable, toTransform } from '@kawaz/stream-bridge';
// Convert to Readable
const webReadable = new ReadableStream();
const nodeReadable = toReadable(webReadable);
// Convert to Writable
const webWritable = new WritableStream();
const nodeWritable = toWritable(webWritable);
// Convert to Transform
const webTransform = new TransformStream();
const nodeTransform = toTransform(webTransform);API
Node.js → Web Stream
toReadableStream<T>(readable: Readable): ReadableStream<T>toWritableStream<T>(writable: Writable): WritableStream<T>toTransformStream<T, O>(duplex: Transform|Duplex): TransformStream<T, O>toReadableWritablePair<R, W>(duplex: Duplex): ReadableWritablePair<R, W>
Web Stream → Node.js
toReadable(readableStream: ReadableStream, options?): ReadabletoWritable(writableStream: WritableStream, options?): WritabletoTransform(transformStream: TransformStream, options?): TransformtoDuplex(transformStream: TransformStream, options?): Duplex
License
MIT © Yoshiaki Kawazu
Contributing
Please report bugs and feature requests in the GitHub Issues. Pull requests are welcome.
Development
# Install dependencies
bun install
# Run tests
bun test
# Build
bun run build0.1.1
11 months ago