"use strict"; const pipe = require("@promistream/pipe"); const fromIterable = require("@promistream/from-iterable"); const simpleSink = require("./"); (async () => { try { let result = await pipe([ fromIterable([ 1, 2, 3, 4, 5 ]), simpleSink({ onValue: async (value, abort) => { console.log("value seen:", value); // if (value === 3) { abort(new Error("uncomment this to trigger an abort")); } }, onEnd: async () => { console.log("stream finished"); return "arbitrary value"; }, onAbort: async (error) => { console.log("stream aborted due to reason:", error); } }) ]).read(); console.log("result:", result); } catch (error) { console.log("caught error:", error); } })(); /* Output: value seen: 1 value seen: 2 value seen: 3 value seen: 4 value seen: 5 stream finished result: arbitrary value */