@jridgewell/resolve-uri

Resolve a URI relative to an optional base URI

Resolve any combination of absolute URIs, protocol-realtive URIs, absolute paths, or relative paths.

Installation

npm install @jridgewell/resolve-uri

Usage

function resolve(input: string, base?: string): string;
import resolve from '@jridgewell/resolve-uri';

resolve('foo', 'https://example.com'); // => 'https://example.com/foo'
Input
Base
Resolution
Explanation

https://example.com

any

https://example.com/

Input is normalized only

//example.com

https://base.com/

https://example.com/

Input inherits the base's protocol

//example.com

rest

//example.com/

Input is normalized only

/example

https://base.com/

https://base.com/example

Input inherits the base's origin

/example

//base.com/

//base.com/example

Input inherits the base's host and remains protocol relative

/example

rest

/example

Input is normalized only

example

https://base.com/dir/

https://base.com/dir/example

Input is joined with the base

example

https://base.com/file

https://base.com/example

Input is joined with the base without its file

example

//base.com/dir/

//base.com/dir/example

Input is joined with the base's last directory

example

//base.com/file

//base.com/example

Input is joined with the base without its file

example

/base/dir/

/base/dir/example

Input is joined with the base's last directory

example

/base/file

/base/example

Input is joined with the base without its file

example

base/dir/

base/dir/example

Input is joined with the base's last directory

example

base/file

base/example

Input is joined with the base without its file

Last updated