mirror of
https://github.com/LukeHagar/relay.git
synced 2025-12-06 04:21:14 +00:00
40 lines
1.2 KiB
JavaScript
40 lines
1.2 KiB
JavaScript
"use strict";
|
|
// utility for whatwg streams
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.ensureAsyncIterable = exports.asyncIterableFromStream = exports.isAsyncIterable = void 0;
|
|
function isAsyncIterable(object) {
|
|
return object[Symbol.asyncIterator] != null;
|
|
}
|
|
exports.isAsyncIterable = isAsyncIterable;
|
|
function assertNonNull(value) {
|
|
if (value == null) {
|
|
throw new Error("Assertion Failure: value must not be null nor undefined");
|
|
}
|
|
}
|
|
async function* asyncIterableFromStream(stream) {
|
|
const reader = stream.getReader();
|
|
try {
|
|
while (true) {
|
|
const { done, value } = await reader.read();
|
|
if (done) {
|
|
return;
|
|
}
|
|
assertNonNull(value);
|
|
yield value;
|
|
}
|
|
}
|
|
finally {
|
|
reader.releaseLock();
|
|
}
|
|
}
|
|
exports.asyncIterableFromStream = asyncIterableFromStream;
|
|
function ensureAsyncIterable(streamLike) {
|
|
if (isAsyncIterable(streamLike)) {
|
|
return streamLike;
|
|
}
|
|
else {
|
|
return asyncIterableFromStream(streamLike);
|
|
}
|
|
}
|
|
exports.ensureAsyncIterable = ensureAsyncIterable;
|
|
//# sourceMappingURL=stream.js.map
|