| 1 | import type {IterableElement, Promisable} from 'type-fest'; |
| 2 | |
| 3 | async function pSome(iterable: Iterable<PromiseLike<unknown>>): Promise<boolean> { |
| 4 | // eslint-disable-next-line no-async-promise-executor -- It's fine, resolve is at the end |
| 5 | return new Promise(async resolve => { |
| 6 | for (const promise of iterable) { |
| 7 | (async () => { |
| 8 | if (await promise) { |
| 9 | resolve(true); |
| 10 | } |
| 11 | })(); |
| 12 | } |
| 13 | |
| 14 | await Promise.allSettled(iterable); |
| 15 | |
| 16 | resolve(false); |
| 17 | }); |
| 18 | } |
| 19 | |
| 20 | async function pEvery(iterable: Iterable<PromiseLike<unknown>>): Promise<boolean> { |
| 21 | const results = await Promise.all(iterable); |