export const any = { async any(iterable: Iterable>): Promise { return Promise.all( [...iterable].map((promise) => { return new Promise((resolve, reject) => Promise.resolve(promise).then(reject, resolve) ) }) ).then( (errors) => Promise.reject(errors), (value) => Promise.resolve(value) ) }, }.any export const initPromise = (target: any, exclude: Set) => { if (exclude.has('Promise') || exclude.has('any')) return const Class = target.Promise || globalThis.Promise if (!Class.any) Object.defineProperty(Class, 'any', { value: any, writable: true, enumerable: false, configurable: true, }) }