UNPKG

@gameye/sdk

Version:
40 lines 1.17 kB
import { finished, PassThrough, pipeline } from "stream"; import { promisify } from "util"; export const whenFinished = promisify(finished); export async function writeAll(stream, data) { if (data) stream.end(data); else stream.end(); await whenFinished(stream); } export async function readAll(stream) { let data = ""; stream.on("readable", () => { let chunk; while (Boolean(chunk = stream.read())) { data += String(chunk); } }); await whenFinished(stream); return data; } export function streamify(streamPromise) { const pass = new PassThrough({ objectMode: true, }); streamPromise.then(stream => pipeline(stream, pass, error => { if (error) pass.emit("error", error); }), error => pass.emit("error", error)); return pass; } export const timeoutToken = Symbol(); export async function withTimeout(promise, timeout = 100) { const result = await Promise.race([ promise, new Promise(resolve => setTimeout(resolve, timeout)).then(() => timeoutToken), ]); return result; } //# sourceMappingURL=stream-utils.js.map