UNPKG

spec-url

Version:

URL library that implements a reference resolution algorithm for WHATWG URLs

77 lines (62 loc) 1.26 kB
import { ipv4, ipv6 } from '../src/authority.js' import * as assert from 'assert/strict' const log = console.log.bind (console) const head = s => { log ('\n' + s) log (new Array (s.length+1).join ('-'), '\n') } // IPv4 Examples // ------------- const ip4Samples = ` 192.0x00A80001 0xc0.0250.01 0xc0.0250.01. 192.168.257 256 999999999 4294967295 0x.0x.0 0xfffffff `.split ('\n') .filter (_ => _ != '') function testIp4 () { head ('Ipv4 examples') ip4Samples.forEach (s => log ( ' >', s, '\n=>', ipv4.parse (s), '\n=>', ipv4.normalise (s), '\n' )) } // IPv6 Examples // ------------- const ip6Samples = ` 1:0:: 0:1:0:1:0:1:0:1 ::127.0.0.1 2001:DB8:0:0:8:800:200C:417A FF01:0:0:0:0:0:0:101 0:0:0:0:0:0:0:1 0:0:0:0:0:0:0:0 2001:DB8::8:800:200C:417A 0:0:0:0:0:0:13.1.68.3 ::13.1.68.3 0:0:0:0:0:FFFF:129.144.52.38 ::FFFF:129.144.52.38 FF01::101 ::1 ::` .split ('\n').filter (_ => _.length) function testIp6 () { head ('Ipv6 examples') const { parse, print, normalise } = ipv6 assert.throws ($ => parse ('0::0::0')) assert.throws ($ => parse ('::1.2.3.')) ip6Samples.forEach (s => log ( ' >', s, '\n=>', parse (s), '\n=>', normalise (s), '\n' )) } // Run examples // ------------ testIp4 () testIp6 ()