@push-stream-std/push-defer (0.0.3)
Installation
@push-stream-std:registry=https://hub.kl1.tenere.ai/api/packages/push-stream-std/npm/npm install @push-stream-std/push-defer@0.0.3"@push-stream-std/push-defer": "0.0.3"About this package
push-defer
Create a placeholder for a push stream that won't start moving until later.
Published as @push-stream-std/push-defer.
Synopsis
import { source } from '@push-stream-std/push-defer';
import { values } from '@push-stream-std/push-values';
import { collect } from '@push-stream-std/push-collect';
const deferred = source();
const actual = values([1, 2, 3]);
collect(deferred, (err, result) => {
console.log(result); // [1, 2, 3]
});
deferred.resolve(actual);
Install
npm config set @push-stream-std:registry https://hub.kl1.tenere.ai/api/packages/push-stream-std/npm/
npm config set -- //hub.kl1.tenere.ai/api/packages/push-stream-std/npm/:_authToken "$PACKAGE_TOKEN"
npm install @push-stream-std/push-defer
Description
Provides deferred placeholder streams for source, through, sink, and duplex types. Operations (writes, pipe, abort) are buffered while the placeholder is unresolved, then replayed to the actual stream once resolve() is called. This enables circular stream graphs, lazy initialization, and streams that depend on result data from later pipeline stages.
API
source()
Returns a deferred source stream placeholder.
- Returns
deferred— Object withpipe,resume,abort,resolve(actualSource)andresolvedgetter. Buffers pipe until resolved;resolve()triggers the actual source to pipe to the waiting sink.
through()
Returns a deferred through stream placeholder.
- Returns
deferred— Object withwrite,end,abort,pipe,resume,resolve(actualThrough)andresolvedgetter. Buffers writes and end calls, replays them on resolve. Also forwardssourcesetter.
sink()
Returns a deferred sink stream placeholder.
- Returns
deferred— Object withwrite,end,abort,resolve(actualSink)andresolvedgetter. Buffers writes and end calls, replays them when resolved.
duplex()
Returns a deferred duplex (source + sink) placeholder.
- Returns
deferred— Object withsource,sink,pipe,resolve(actualDuplex),abort, andresolvedgetter. Resolves both source and sink halves from the actual duplex.
Tests
npm test
Tests cover all four stream types, buffered writes/ends, resolve replay, abort propagation, and double-resolve prevention.
Requirements
Node.js 18 or later. ESM only.
License
MIT
Dependencies
Development Dependencies
| ID | Version |
|---|---|
| fast-check | ^3.23.2 |