Socket
Socket
Sign inDemoInstall

relative-to-absolute-iri

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

relative-to-absolute-iri

Resolve relative IRIs to absolute IRIs given a base IRI


Version published
Weekly downloads
24K
increased by15.88%
Maintainers
1
Weekly downloads
 
Created
Source

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.

Keywords

FAQs

Package last updated on 09 Nov 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc