1
0
Fork 0

making a promise array

vmjoseph/download-v4-client-blob
Vallie Joseph 2023-12-20 21:15:04 +00:00
parent c33724abbd
commit b54065b5da
1 changed files with 20 additions and 10 deletions

View File

@ -39,19 +39,29 @@ async function exists(path: string): Promise<boolean> {
async function streamExtract(url: string, directory: string): Promise<void> {
let retryCount = 0
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const promises: Promise<any>[] = []
while (retryCount < 5) {
try {
await streamExtractInternal(url, directory)
return
} catch (error) {
retryCount++
core.warning(`Failed to download artifact. Retrying in 5 seconds...`)
// wait 5 seconds before retrying
await new Promise(resolve => setTimeout(resolve, 5000))
}
const promise = new Promise(async () => {
try {
await streamExtractInternal(url, directory)
} catch (err) {
retryCount++
core.warning(`Failed to download artifact. Retrying in 5 seconds...`)
await new Promise(resolve => setTimeout(resolve, 5000))
}
})
promises.push(promise)
}
throw new Error(`Artifact download failed after ${retryCount} retries.`)
try {
await Promise.all(promises)
core.info('All Promises Returned')
} catch (error) {
throw new Error(`Artifact download failed after ${retryCount} retries.`)
}
// throw new Error(`Artifact download failed after ${retryCount} retries.`)
}
async function streamExtractInternal(