(
results: PromiseSettledResult<CustomResult<T>>[],
)
| 13 | type CustomResult<T> = ValidResult<T> | WarningResult; |
| 14 | |
| 15 | export function processPromiseResults<T>( |
| 16 | results: PromiseSettledResult<CustomResult<T>>[], |
| 17 | ): { |
| 18 | validItems: T[]; |
| 19 | warnings: string[]; |
| 20 | } { |
| 21 | const validItems: T[] = []; |
| 22 | const warnings: string[] = []; |
| 23 | |
| 24 | results.forEach(result => { |
| 25 | if (result.status === 'fulfilled') { |
| 26 | const value = result.value; |
| 27 | if (value.type === 'valid') { |
| 28 | validItems.push(...value.data); |
| 29 | } else { |
| 30 | warnings.push(value.warning); |
| 31 | } |
| 32 | } |
| 33 | }); |
| 34 | |
| 35 | return { |
| 36 | validItems, |
| 37 | warnings, |
| 38 | }; |
| 39 | } |
| 40 | |
| 41 | export function throwIfAnyFailed<T>(results: PromiseSettledResult<T>[]) { |
| 42 | const failedResult = results.find(result => result.status === 'rejected'); |
no outgoing calls
no test coverage detected