relative-to-absolute-iri v1.0.7
Relative to Absolute IRI
Resolve relative IRIs to absolute IRIs given a base IRI, conforming to RFC3986.
Installation
$ yarn install relative-to-absolute-iriThis package also works out-of-the-box in browsers via tools such as webpack and browserify.
Require
import {resolve} from "relative-to-absolute-iri";or
const resolve = require("relative-to-absolute-iri").resolve;Usage
Parameters
This library exposes a single resolve function
that must be called with a relative IRI (string) as first argument,
and an optional base IRI (string) as second argument.
It will output an absolute IRI (string).
resolve('relative', 'http://base.org/'); // Outputs 'http://base.org/relative'Relative IRIs
IRIs that are already relative will remain relative:
resolve('http://example.org/'); // Outputs 'http://example.org/'
resolve('http://example.org/', 'http://base.org/'); // Outputs 'http://example.org/'Hashes
Fragments/hashes in relative IRIs are also taken into account.
resolve('#abc', 'http://base.org/'); // Outputs 'http://base.org/#abc'Invalid base IRI
Invalid base IRIs cause an error to be thrown.
resolve('abc', 'def'); // ErrorRelative to scheme
When a relative IRI starts with a //, then the scheme of the base IRI will be used.
resolve('//abc', 'http://base.org/'); // Outputs 'http://abc'Absolute relative IRIs
Relative IRIs that starts with a / erase the path of the base IRI.
resolve('/abc/def/', 'http://base.org/123/456/'); // Outputs 'http://base.org/abc/def/'Collapsing of dots
Relative IRIs that point to the current directory (.)
or parent directory (..) are collapsed.
resolve('xyz', 'http://aa/parent/parent/../../a'); // Outputs 'http://aa/xyz'
resolve('xyz', 'http://aa/././a'); // Outputs 'http://aa/xyz'License
This software is written by Ruben Taelman.
This code is released under the MIT license.