| 18 | } from './types'; |
| 19 | |
| 20 | const isClientNetworkError = (err: Error) => { |
| 21 | if (err.message) { |
| 22 | // These are common network errors that may happen occasionally and we should retry if we encounter these |
| 23 | return ( |
| 24 | err.message.includes('ETIMEDOUT') || |
| 25 | err.message.includes('ECONNREFUSED') || |
| 26 | err.message.includes('ENOTFOUND') || |
| 27 | err.message.includes('ECONNRESET') || |
| 28 | err.message.includes('EAI_FAIL') || |
| 29 | err.message.includes('socket hang up') || |
| 30 | err.message.includes('network socket disconnected') |
| 31 | ); |
| 32 | } |
| 33 | |
| 34 | return false; |
| 35 | }; |
| 36 | |
| 37 | export async function* upload( |
| 38 | files: FilesMap, |