@gameye/sdk
Version:
Node.js SDK for Gameye
40 lines • 1.17 kB
JavaScript
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