Skip to content

Commit

Permalink
Merge e413d7f into c10f03b
Browse files Browse the repository at this point in the history
  • Loading branch information
Kikobeats committed Sep 26, 2022
2 parents c10f03b + e413d7f commit 497eac2
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 5 deletions.
14 changes: 14 additions & 0 deletions index.js
Expand Up @@ -47,6 +47,20 @@ const reachableUrl = async (url, opts) => {

const mergedResponse = mergeResponse(isFulfilled ? value : error.response, response)

if (mergedResponse.statusCode === 206) {
const contentRange = mergedResponse.headers['content-range']
if (typeof contentRange === 'string') {
let contentLength = contentRange.split('/')
if (contentLength.length > 1) {
contentLength = contentLength[contentLength.length - 1]
mergedResponse.statusCode = 200
mergedResponse.statusMessage = 'OK'
mergedResponse.headers['content-length'] = contentLength
mergedResponse.headers['content-range'] = undefined
}
}
}

return {
url,
...mergedResponse,
Expand Down
14 changes: 9 additions & 5 deletions test/index.js
Expand Up @@ -111,21 +111,24 @@ test('keep original query search', async t => {
'https://www.b92.net/biz/vesti/srbija/dogovoreno-nikola-tesla-primer-aerodromu-u-cg-1465369'
const res = await reachableUrl(url)
t.is(res.url, url)
t.true(isReachable(res))

t.is(200, res.statusCode)
t.is(res.statusMessage, 'OK')
t.true(Object.keys(res.headers).length > 0)
t.truthy(res.headers['content-length'])
t.truthy(res.headers['content-range'])
t.falsy(res.headers['content-range'])
})

test("ensure to don't download body", async t => {
t.timeout(8000)
t.timeout(1000)
const url = 'http://ftp.nluug.nl/pub/graphics/blender/demo/movies/ToS/ToS-4k-1920.mov'
const res = await reachableUrl(url)
t.is(res.url, url)
t.true(isReachable(res))
t.is(200, res.statusCode)
t.is(res.statusMessage, 'OK')
t.true(Object.keys(res.headers).length > 0)
t.truthy(res.headers['content-length'])
t.truthy(res.headers['content-range'])
t.falsy(res.headers['content-range'])
})

test('handle DNS errors', async t => {
Expand Down Expand Up @@ -166,4 +169,5 @@ test('header `content-length` is present', async t => {
t.is(res.url, url)
t.true(isReachable(res))
t.truthy(res.headers['content-length'])
t.falsy(res.headers['content-range'])
})

0 comments on commit 497eac2

Please sign in to comment.