normalize-url
    TypeScript icon, indicating that this package has built-in type declarations

    4.5.0 • Public • Published

    normalize-url Build Status Coverage Status

    Normalize a URL

    Useful when you need to display, store, deduplicate, sort, compare, etc, URLs.

    Install

    $ npm install normalize-url
    

    Usage

    const normalizeUrl = require('normalize-url');
     
    normalizeUrl('sindresorhus.com');
    //=> 'http://sindresorhus.com'
     
    normalizeUrl('HTTP://xn--xample-hva.com:80/?b=bar&a=foo');
    //=> 'http://êxample.com/?a=foo&b=bar'

    API

    normalizeUrl(url, options?)

    url

    Type: string

    URL to normalize, including data URL.

    options

    Type: object

    defaultProtocol

    Type: string
    Default: http:

    normalizeProtocol

    Type: boolean
    Default: true

    Prepend defaultProtocol to the URL if it's protocol-relative.

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

    Type: boolean
    Default: false

    Normalize https: to http:.

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

    Type: boolean
    Default: false

    Normalize http: to https:.

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

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

    stripAuthentication

    Type: boolean
    Default: true

    Strip the authentication part of the URL.

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

    Type: boolean
    Default: false

    Strip the hash part of the URL.

    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'
    stripProtocol

    Type: boolean
    Default: false

    Remove HTTP(S) protocol from the URL: http://sindresorhus.comsindresorhus.com.

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

    Type: boolean
    Default: true

    Remove www. from the URL.

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

    Type: Array<RegExp | string>
    Default: [/^utm_\w+/i]

    Remove query parameters that matches any of the provided strings or regexes.

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

    Type: boolean
    Default: true

    Remove trailing slash.

    Note: Trailing slash is always removed if the URL doesn't have a pathname.

    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'
    removeDirectoryIndex

    Type: boolean | Array<RegExp | string>
    Default: false

    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.

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

    Type: boolean
    Default: true

    Sorts the query parameters alphabetically by key.

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

    Related


    Get professional support for this package with a Tidelift subscription
    Tidelift helps make open source sustainable for maintainers while giving companies
    assurances about security, maintenance, and licensing for their dependencies.

    Install

    npm i [email protected]

    Version

    4.5.0

    License

    MIT

    Unpacked Size

    18.1 kB

    Total Files

    5

    Last publish

    Collaborators

    • avatar
    • avatar