normalize-url

  • Version 7.0.2
  • Published
  • 22.5 kB
  • No dependencies
  • MIT license

Install

npm i normalize-url
yarn add normalize-url
pnpm add normalize-url

Overview

Normalize a URL

Index

Functions

function normalizeUrl

normalizeUrl: (url: string, options?: Options) => string;
  • [Normalize](https://en.wikipedia.org/wiki/URL_normalization) a URL.

    Parameter url

    URL to normalize, including [data URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs).

    Example 1

    import normalizeUrl from 'normalize-url';
    normalizeUrl('sindresorhus.com');
    //=> 'http://sindresorhus.com'
    normalizeUrl('//www.sindresorhus.com:80/../baz?b=bar&a=foo');
    //=> 'http://sindresorhus.com/baz?a=foo&b=bar'

Interfaces

interface Options

interface Options {}

    property defaultProtocol

    readonly defaultProtocol?: string;
    • 'http:'

    property forceHttp

    readonly forceHttp?: boolean;
    • Normalizes https: URLs to http:.

      false

      Example 1

      ``` normalizeUrl('https://sindresorhus.com:80/'); //=> 'https://sindresorhus.com'

      normalizeUrl('https://sindresorhus.com:80/', {forceHttp: true}); //=> 'http://sindresorhus.com' ```

    property forceHttps

    readonly forceHttps?: boolean;
    • Normalizes http: URLs to https:.

      This option can't be used with the forceHttp option at the same time.

      false

      Example 1

      ``` normalizeUrl('https://sindresorhus.com:80/'); //=> 'https://sindresorhus.com'

      normalizeUrl('http://sindresorhus.com:80/', {forceHttps: true}); //=> 'https://sindresorhus.com' ```

    property normalizeProtocol

    readonly normalizeProtocol?: boolean;
    • Prepends defaultProtocol to the URL if it's protocol-relative.

      true

      Example 1

      ``` normalizeUrl('//sindresorhus.com:80/'); //=> 'http://sindresorhus.com'

      normalizeUrl('//sindresorhus.com:80/', {normalizeProtocol: false}); //=> '//sindresorhus.com' ```

    property removeDirectoryIndex

    readonly removeDirectoryIndex?: boolean | ReadonlyArray<RegExp | string>;
    • Removes the default directory index file from path that matches any of the provided strings or regexes. When true, the regex /^index\.[a-z]+$/ is used.

      false

      Example 1

      ``` normalizeUrl('www.sindresorhus.com/foo/default.php', { removeDirectoryIndex: [/^default.[a-z]+$/] }); //=> 'http://sindresorhus.com/foo' ```

    property removeQueryParameters

    readonly removeQueryParameters?: ReadonlyArray<RegExp | string> | boolean;
    • Removes query parameters that matches any of the provided strings or regexes.

      [/^utm_\w+/i]

      Example 1

      ``` normalizeUrl('www.sindresorhus.com?foo=bar&ref=test_ref', { removeQueryParameters: ['ref'] }); //=> 'http://sindresorhus.com/?foo=bar' ```

      If a boolean is provided, true will remove all the query parameters.

      ``` normalizeUrl('www.sindresorhus.com?foo=bar', { removeQueryParameters: true }); //=> 'http://sindresorhus.com' ```

      false will not remove any query parameter.

      ``` normalizeUrl('www.sindresorhus.com?foo=bar&utm_medium=test&ref=test_ref', { removeQueryParameters: false }); //=> 'http://www.sindresorhus.com/?foo=bar&ref=test_ref&utm_medium=test' ```

    property removeSingleSlash

    readonly removeSingleSlash?: boolean;
    • Remove a sole / pathname in the output. This option is independant of removeTrailingSlash.

      true

      Example 1

      ``` normalizeUrl('https://sindresorhus.com/'); //=> 'https://sindresorhus.com'

      normalizeUrl('https://sindresorhus.com/', {removeSingleSlash: false}); //=> 'https://sindresorhus.com/' ```

    property removeTrailingSlash

    readonly removeTrailingSlash?: boolean;
    • Removes trailing slash.

      __Note__: Trailing slash is always removed if the URL doesn't have a pathname unless the removeSingleSlash option is set to false.

      true

      Example 1

      ``` normalizeUrl('http://sindresorhus.com/redirect/'); //=> 'http://sindresorhus.com/redirect'

      normalizeUrl('http://sindresorhus.com/redirect/', {removeTrailingSlash: false}); //=> 'http://sindresorhus.com/redirect/'

      normalizeUrl('http://sindresorhus.com/', {removeTrailingSlash: false}); //=> 'http://sindresorhus.com' ```

    property sortQueryParameters

    readonly sortQueryParameters?: boolean;
    • Sorts the query parameters alphabetically by key.

      true

      Example 1

      ``` normalizeUrl('www.sindresorhus.com?b=two&a=one&c=three', { sortQueryParameters: false }); //=> 'http://sindresorhus.com/?b=two&a=one&c=three' ```

    property stripAuthentication

    readonly stripAuthentication?: boolean;
    • Strip the [authentication](https://en.wikipedia.org/wiki/Basic_access_authentication) part of a URL.

      true

      Example 1

      ``` normalizeUrl('user:password@sindresorhus.com'); //=> 'https://sindresorhus.com'

      normalizeUrl('user:password@sindresorhus.com', {stripAuthentication: false}); //=> 'https://user:password@sindresorhus.com' ```

    property stripHash

    readonly stripHash?: boolean;
    • Removes hash from the URL.

      false

      Example 1

      ``` normalizeUrl('sindresorhus.com/about.html#contact'); //=> 'http://sindresorhus.com/about.html#contact'

      normalizeUrl('sindresorhus.com/about.html#contact', {stripHash: true}); //=> 'http://sindresorhus.com/about.html' ```

    property stripProtocol

    readonly stripProtocol?: boolean;
    • Removes HTTP(S) protocol from an URL http://sindresorhus.comsindresorhus.com.

      false

      Example 1

      ``` normalizeUrl('https://sindresorhus.com'); //=> 'https://sindresorhus.com'

      normalizeUrl('sindresorhus.com', {stripProtocol: true}); //=> 'sindresorhus.com' ```

    property stripTextFragment

    readonly stripTextFragment?: boolean;
    • Strip the [text fragment](https://web.dev/text-fragments/) part of the URL

      __Note:__ The text fragment will always be removed if the stripHash option is set to true, as the hash contains the text fragment.

      true

      Example 1

      ``` normalizeUrl('http://sindresorhus.com/about.html#:~:text=hello'); //=> 'http://sindresorhus.com/about.html#'

      normalizeUrl('http://sindresorhus.com/about.html#section:~:text=hello'); //=> 'http://sindresorhus.com/about.html#section'

      normalizeUrl('http://sindresorhus.com/about.html#:~:text=hello', {stripTextFragment: false}); //=> 'http://sindresorhus.com/about.html#:~:text=hello'

      normalizeUrl('http://sindresorhus.com/about.html#section:~:text=hello', {stripTextFragment: false}); //=> 'http://sindresorhus.com/about.html#section:~:text=hello' ```

    property stripWWW

    readonly stripWWW?: boolean;
    • Removes www. from the URL.

      true

      Example 1

      ``` normalizeUrl('http://www.sindresorhus.com'); //=> 'http://sindresorhus.com'

      normalizeUrl('http://www.sindresorhus.com', {stripWWW: false}); //=> 'http://www.sindresorhus.com' ```

    Package Files (1)

    Dependencies (0)

    No dependencies.

    Dev Dependencies (5)

    Peer Dependencies (0)

    No peer dependencies.

    Badge

    To add a badge like this onejsDocs.io badgeto your package's README, use the codes available below.

    You may also use Shields.io to create a custom badge linking to https://www.jsdocs.io/package/normalize-url.

    • Markdown
      [![jsDocs.io](https://img.shields.io/badge/jsDocs.io-reference-blue)](https://www.jsdocs.io/package/normalize-url)
    • HTML
      <a href="https://www.jsdocs.io/package/normalize-url"><img src="https://img.shields.io/badge/jsDocs.io-reference-blue" alt="jsDocs.io"></a>