(rawUrl, dest, maxBytes = 0)
| 172 | } |
| 173 | |
| 174 | async function download(rawUrl, dest, maxBytes = 0) { |
| 175 | let url = validateUrl(rawUrl); |
| 176 | for (let redirects = 0; redirects <= MAX_REDIRECTS; redirects += 1) { |
| 177 | const result = await downloadHop(url, dest, maxBytes); |
| 178 | if (!result.redirect) return; |
| 179 | if (redirects === MAX_REDIRECTS) throw new Error('Too many redirects'); |
| 180 | url = result.redirect; |
| 181 | } |
| 182 | } |
| 183 | |
| 184 | function parseExpectedChecksum(manifest, archiveName) { |
| 185 | let expected = null; |
no test coverage detected