dagify-hyper
Version:
A collection of Dagify nodes for peer-to-peer hyper ecosystem tools.
18 lines (14 loc) • 594 B
JavaScript
import {createNode, createSinkNode} from "dagify";
import {from, fromEvent, take, takeUntil} from "rxjs";
const takeUntilStreamClose = socket => takeUntil(fromEvent(socket, "close").pipe(take(1)));
const streamReceiverNode = (socket, fn, config = {}) =>
createNode(fn, from(socket).pipe(takeUntilStreamClose(socket)), config)
const streamTransmitterNode = (socket, deps, config = {}) => {
const node = createSinkNode(x => socket.write(x), deps, config);
socket.once("close", () => node.complete());
return node;
}
export {
streamTransmitterNode,
streamReceiverNode
}