Skip to content

Commit

Permalink
Merge 2a1cf65 into 9f6078f
Browse files Browse the repository at this point in the history
  • Loading branch information
zekth committed Feb 5, 2022
2 parents 9f6078f + 2a1cf65 commit 40a3621
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 16 deletions.
35 changes: 21 additions & 14 deletions benchmark.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,48 +4,55 @@ const fasturi = require('./')
const urijs = require('uri-js')

const base = 'uri://a/b/c/d;p?q'

const domain = 'https://example.com/foo#bar$fiz'
const ipv4 = '//10.10.10.10'
const ipv6 = '//[2001:db8::7]'
const urn = 'urn:foo:a123,456'
const urnuuid = 'urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6'

// Initialization as there is a lot to parse at first
// eg: regexes
fasturi.parse('https://example.com')
urijs.parse('https://example.com')
fasturi.parse(domain)
urijs.parse(domain)

suite.add('fast-uri: parse domain', function () {
fasturi.parse('https://example.com')
fasturi.parse(domain)
})
suite.add('urijs: parse domain', function () {
urijs.parse('https://example.com')
urijs.parse(domain)
})
suite.add('WHATWG URL: parse domain', function () {
// eslint-disable-next-line
new URL('https://example.com')
new URL(domain)
})
suite.add('fast-uri: parse IPv4', function () {
fasturi.parse('//10.10.10.10')
fasturi.parse(ipv4)
})
suite.add('urijs: parse IPv4', function () {
urijs.parse('//10.10.10.10')
urijs.parse(ipv4)
})
suite.add('fast-uri: parse IPv6', function () {
fasturi.parse('//[2001:db8::7]')
fasturi.parse(ipv6)
})
suite.add('urijs: parse IPv6', function () {
urijs.parse('//[2001:db8::7]')
urijs.parse(ipv6)
})
suite.add('fast-uri: parse URN', function () {
fasturi.parse('urn:foo:a123,456')
fasturi.parse(urn)
})
suite.add('urijs: parse URN', function () {
urijs.parse('urn:foo:a123,456')
urijs.parse(urn)
})
suite.add('WHATWG URL: parse URN', function () {
// eslint-disable-next-line
new URL('urn:foo:a123,456')
new URL(urn)
})
suite.add('fast-uri: parse URN uuid', function () {
fasturi.parse('urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6')
fasturi.parse(urnuuid)
})
suite.add('urijs: parse URN uuid', function () {
urijs.parse('urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6')
urijs.parse(urnuuid)
})
suite.add('fast-uri: serialize uri', function () {
fasturi.serialize({
Expand Down
4 changes: 2 additions & 2 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -274,10 +274,10 @@ function parse (uri, opts) {
parsed.host = unescape(parsed.host)
}
if (parsed.path !== undefined && parsed.path.length) {
parsed.path = escape(parsed.path)
parsed.path = encodeURI(parsed.path)
}
if (parsed.fragment !== undefined && parsed.fragment.length) {
parsed.fragment = escape(parsed.fragment)
parsed.fragment = encodeURI(decodeURI(parsed.fragment))
}
}

Expand Down
3 changes: 3 additions & 0 deletions test/compatibility.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@ test('compatibility Parse', (t) => {
'//[2606:2800:220:1:248:1893:25c8:1946:43209]',
'http://foo.bar',
'http://',
'#/$defs/stringMap',
'#/$defs/string%20Map',
'#/$defs/string Map',
'//?json=%7B%22foo%22%3A%22bar%22%7D'
// 'mailto:chris@example.com'-203845,
// 'mailto:infobot@example.com?subject=current-issue',
Expand Down

0 comments on commit 40a3621

Please sign in to comment.