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 }) }