JSPM

relative-to-absolute-iri

1.0.7
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 38332
  • Score
    100M100P100Q178979F
  • License MIT

Resolve relative IRIs to absolute IRIs given a base IRI

Package Exports

  • relative-to-absolute-iri
  • relative-to-absolute-iri/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (relative-to-absolute-iri) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Relative to Absolute IRI

Build status Coverage Status npm version

Resolve relative IRIs to absolute IRIs given a base IRI, conforming to RFC3986.

Installation

$ yarn install relative-to-absolute-iri

This 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'); // Error

Relative 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.