Nuclear Powered Marshmallows

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

    1.9.1 • Public • Published

    normalize-url Build Status

    Normalize a URL

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

    Install

    $ npm install --save 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.

    options

    normalizeProtocol

    Type: boolean
    Default: true

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

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

    Type: boolean
    Default: false

    Normalize https: URLs to http:.

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

    Type: boolean
    Default: true

    Remove the fragment at the end of the URL.

    normalizeUrl('sindresorhus.com/about.html#contact');
    //=> 'http://sindresorhus.com/about.html'
    
    normalizeUrl('sindresorhus.com/about.html#contact', {stripFragment: false});
    //=> 'http://sindresorhus.com/about.html#contact'
    stripWWW

    Type: boolean
    Default: true

    Remove www. from the URL.

    normalizeUrl('http://www.sindresorhus.com/about.html#contact');
    //=> 'http://sindresorhus.com/about.html#contact'
    
    normalizeUrl('http://www.sindresorhus.com/about.html#contact', {stripWWW: false});
    //=> 'http://www.sindresorhus.com/about.html#contact'
    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

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

    Related

    License

    MIT © Sindre Sorhus

    Install

    npm i normalize-url@1.9.1

    Version

    1.9.1

    License

    MIT

    Last publish

    Collaborators

    • sindresorhus