fets
Version:
TypeScript HTTP Framework focusing on e2e type-safety, easy setup, performance & great developer experience
30 lines (29 loc) • 891 B
JavaScript
import { isPromise } from '@whatwg-node/server';
export function asyncIterationUntilReturn(iterable, callback) {
const iterator = iterable[Symbol.iterator]();
function iterate() {
const { value, done } = iterator.next();
if (done) {
return;
}
if (value) {
const callbackResult$ = callback(value);
if (isPromise(callbackResult$)) {
return callbackResult$.then(callbackResult => {
if (callbackResult) {
return callbackResult;
}
return iterate();
});
}
if (callbackResult$) {
return callbackResult$;
}
return iterate();
}
}
return iterate();
}
export function isBlob(value) {
return value.arrayBuffer !== undefined;
}