@gameye/sdk
Version:
Node.js SDK for Gameye
27 lines • 882 B
JavaScript
/**
* Read stream until the waitFor function returns true, then
* pause the stream.
* @param stream stream to read
* @param waitFor return true to resolve
*/
export async function streamWait(stream, waitFor = (() => true)) {
return new Promise((resolve, reject) => {
stream.addListener("data", onData);
stream.addListener("error", onError);
stream.resume();
function onData(chunk) {
if (waitFor(chunk)) {
stream.pause();
stream.removeListener("data", onData);
stream.removeListener("error", onError);
resolve(chunk);
}
}
function onError(error) {
stream.removeListener("data", onData);
stream.removeListener("error", onError);
reject(error);
}
});
}
//# sourceMappingURL=stream-wait.js.map