Files
scrypted/server/src/asynciterable-utils.ts
Koushik Dutta a46b2811ed initial commit
2021-08-24 21:22:41 -07:00

20 lines
613 B
TypeScript

export function asyncFilter<T>(asyncIterable: AsyncIterable<T>, predicate: (t: T) => Promise<boolean>): AsyncIterable<T> {
return {
async* [Symbol.asyncIterator]() {
for await (const value of asyncIterable) {
if (await predicate(value)) {
yield value;
}
}
}
}
}
export async function asyncFind<T>(asyncIterable: AsyncIterable<T>, predicate: (t: T) => Promise<boolean>): Promise<T> {
for await (const value of asyncIterable) {
if (await predicate(value)) {
return value;
}
}
}