Skip to content

Commit 14d34cb

Browse files
authored
Merge pull request #17 from soyuka/fix-1
Fix #1
2 parents 6c01361 + 1114b93 commit 14d34cb

File tree

6 files changed

+6059
-14
lines changed

6 files changed

+6059
-14
lines changed

index.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ var axios = require('axios')
22
var randomAccess = require('random-access-storage')
33
var logger = require('./lib/logger')
44
var isNode = require('./lib/is-node')
5-
var validUrl = require('./lib/valid-url')
5+
var {validUrl, prependUrlProtocol} = require('./lib/url')
66

77
var defaultOptions = {
88
responseType: 'arraybuffer',
@@ -12,10 +12,15 @@ var defaultOptions = {
1212
}
1313

1414
var randomAccessHttp = function (filename, options) {
15-
var url = options && options.url
15+
if (!options) options = {}
16+
17+
var url = prependUrlProtocol(options.url)
18+
19+
if (!url) filename = prependUrlProtocol(filename)
1620
if (!filename || (!validUrl(filename) && !validUrl(url))) {
1721
throw new Error('Expect first argument to be a valid URL or a relative path, with url set in options')
1822
}
23+
1924
var axiosConfig = Object.assign({}, defaultOptions)
2025
if (isNode) {
2126
var http = require('http')

lib/url.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
var url = require('url')
2+
3+
module.exports.validUrl = function (str) {
4+
if (typeof str !== 'string') return false
5+
var parsed = url.parse(str)
6+
return ~['http:', 'https:'].indexOf(parsed.protocol)
7+
}
8+
9+
module.exports.prependUrlProtocol = function (str) {
10+
if (typeof str !== 'string') return false
11+
var parsed = url.parse(str)
12+
13+
if (parsed.protocol === null) {
14+
parsed.protocol = 'http:'
15+
var parts = parsed.href.split('/')
16+
parsed.slashes = true
17+
parsed.hostname = parsed.host = parts[0]
18+
parsed.pathname = parsed.path = parts.slice(1).join('/')
19+
}
20+
21+
return url.format(parsed)
22+
}

lib/valid-url.js

Lines changed: 0 additions & 7 deletions
This file was deleted.

0 commit comments

Comments
 (0)