@gameye/sdk
Version:
Node.js SDK for Gameye
46 lines • 1.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const stream_1 = require("stream");
const util_1 = require("util");
exports.whenFinished = util_1.promisify(stream_1.finished);
async function writeAll(stream, data) {
if (data)
stream.end(data);
else
stream.end();
await exports.whenFinished(stream);
}
exports.writeAll = writeAll;
async function readAll(stream) {
let data = "";
stream.on("readable", () => {
let chunk;
while (Boolean(chunk = stream.read())) {
data += String(chunk);
}
});
await exports.whenFinished(stream);
return data;
}
exports.readAll = readAll;
function streamify(streamPromise) {
const pass = new stream_1.PassThrough({
objectMode: true,
});
streamPromise.then(stream => stream_1.pipeline(stream, pass, error => {
if (error)
pass.emit("error", error);
}), error => pass.emit("error", error));
return pass;
}
exports.streamify = streamify;
exports.timeoutToken = Symbol();
async function withTimeout(promise, timeout = 100) {
const result = await Promise.race([
promise,
new Promise(resolve => setTimeout(resolve, timeout)).then(() => exports.timeoutToken),
]);
return result;
}
exports.withTimeout = withTimeout;
//# sourceMappingURL=stream-utils.js.map