Skip to content
This repository was archived by the owner on Jan 7, 2022. It is now read-only.

Commit 58849ff

Browse files
committed
fix dat:// resolve issue
1 parent 3dbbcf5 commit 58849ff

4 files changed

Lines changed: 613 additions & 357 deletions

File tree

index.js

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
var assert = require('assert')
2+
var url = require('url')
23
var stringKey = require('dat-encoding').toStr
34
var nets = require('nets')
4-
var parseUrl = require('node-parse-url')
55
var datDns = require('dat-dns')()
66
var debug = require('debug')('dat-link-resolve')
77

@@ -23,21 +23,22 @@ function resolve (link, cb) {
2323
}
2424

2525
function lookup () {
26-
var url = link.indexOf('http') > -1 ? link : 'http://' + link
27-
var parsed = parseUrl(url)
28-
debug('parsed url', parsed)
29-
if (parsed.path && parsed.path !== '/') return resolveKey()
26+
debug('lookup', link)
27+
var parsed = url.parse(link)
28+
29+
// parsed.host check b/c url.parse('beakerbrowser.com') returns parsed.pathname = 'beakerbrowser.com'
30+
if (parsed.host && parsed.path && parsed.path !== '/') return resolveKey()
3031

3132
// If no path, check .well-known first
32-
url = parsed.subdomain ? `${parsed.subdomain}.${parsed.domain}` : parsed.domain
33-
datDns.resolveName(parsed.domain, function (err, key) {
33+
datDns.resolveName(link, function (err, key) {
3434
if (key) return cb(null, key)
3535
if (err) debug('datDns.resolveName() error', err)
3636
resolveKey()
3737
})
3838

3939
function resolveKey () {
40-
nets({ url: url, json: true }, function (err, resp, body) {
40+
var urlLink = link.indexOf('http') > -1 ? link : 'http://' + link
41+
nets({ url: urlLink, json: true }, function (err, resp, body) {
4142
if (err) return cb(err)
4243
if (resp.statusCode !== 200) return cb(body.message)
4344

0 commit comments

Comments
 (0)