normalize-url
Advanced tools
Comparing version 4.2.0 to 4.3.0
373
index.d.ts
@@ -1,183 +0,216 @@ | ||
export interface Options { | ||
/** | ||
* @default 'http:' | ||
*/ | ||
readonly defaultProtocol?: string; | ||
declare namespace normalizeUrl { | ||
interface Options { | ||
/** | ||
@default 'http:' | ||
*/ | ||
readonly defaultProtocol?: string; | ||
/** | ||
* Prepends `defaultProtocol` to the URL if it's protocol-relative. | ||
* | ||
* @default true | ||
* | ||
* @example | ||
* | ||
* normalizeUrl('//sindresorhus.com:80/'); | ||
* //=> 'http://sindresorhus.com' | ||
* | ||
* normalizeUrl('//sindresorhus.com:80/', {normalizeProtocol: false}); | ||
* //=> '//sindresorhus.com' | ||
*/ | ||
readonly normalizeProtocol?: boolean; | ||
/** | ||
Prepends `defaultProtocol` to the URL if it's protocol-relative. | ||
/** | ||
* Normalizes `https:` URLs to `http:`. | ||
* | ||
* @default false | ||
* | ||
* @example | ||
* | ||
* normalizeUrl('https://sindresorhus.com:80/'); | ||
* //=> 'https://sindresorhus.com' | ||
* | ||
* normalizeUrl('https://sindresorhus.com:80/', {forceHttp: true}); | ||
* //=> 'http://sindresorhus.com' | ||
*/ | ||
readonly forceHttp?: boolean; | ||
@default true | ||
/** | ||
* Normalizes `http:` URLs to `https:`. | ||
* | ||
* This option can't be used with the `forceHttp` option at the same time. | ||
* | ||
* @default false | ||
* | ||
* @example | ||
* | ||
* normalizeUrl('https://sindresorhus.com:80/'); | ||
* //=> 'https://sindresorhus.com' | ||
* | ||
* normalizeUrl('http://sindresorhus.com:80/', {forceHttps: true}); | ||
* //=> 'https://sindresorhus.com' | ||
*/ | ||
readonly forceHttps?: boolean; | ||
@example | ||
``` | ||
normalizeUrl('//sindresorhus.com:80/'); | ||
//=> 'http://sindresorhus.com' | ||
/** | ||
* Strip the [authentication](https://en.wikipedia.org/wiki/Basic_access_authentication) part of a URL. | ||
* | ||
* @default true | ||
* | ||
* @example | ||
* | ||
* normalizeUrl('user:password@sindresorhus.com'); | ||
* //=> 'https://sindresorhus.com' | ||
* | ||
* normalizeUrl('user:password@sindresorhus.com', {stripAuthentication: false}); | ||
* //=> 'https://user:password@sindresorhus.com' | ||
*/ | ||
readonly stripAuthentication?: boolean; | ||
normalizeUrl('//sindresorhus.com:80/', {normalizeProtocol: false}); | ||
//=> '//sindresorhus.com' | ||
``` | ||
*/ | ||
readonly normalizeProtocol?: boolean; | ||
/** | ||
* Removes hash from the URL. | ||
* | ||
* @default false | ||
* | ||
* @example | ||
* | ||
* 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' | ||
*/ | ||
readonly stripHash?: boolean; | ||
/** | ||
Normalizes `https:` URLs to `http:`. | ||
/** | ||
* Removes HTTP(S) protocol from an URL `http://sindresorhus.com` → `sindresorhus.com`. | ||
* | ||
* @default false | ||
* | ||
* @example | ||
* | ||
* normalizeUrl('https://sindresorhus.com'); | ||
* //=> 'https://sindresorhus.com' | ||
* | ||
* normalizeUrl('sindresorhus.com', {stripProtocol: true}); | ||
* //=> 'sindresorhus.com' | ||
*/ | ||
readonly stripProtocol?: boolean; | ||
@default false | ||
/** | ||
* Removes `www.` from the URL. | ||
* | ||
* @default true | ||
* | ||
* @example | ||
* | ||
* normalizeUrl('http://www.sindresorhus.com'); | ||
* //=> 'http://sindresorhus.com' | ||
* | ||
* normalizeUrl('http://www.sindresorhus.com', {stripWWW: false}); | ||
* //=> 'http://www.sindresorhus.com' | ||
*/ | ||
readonly stripWWW?: boolean; | ||
@example | ||
``` | ||
normalizeUrl('https://sindresorhus.com:80/'); | ||
//=> 'https://sindresorhus.com' | ||
/** | ||
* Removes query parameters that matches any of the provided strings or regexes. | ||
* | ||
* @default [/^utm_\w+/i] | ||
* | ||
* @example | ||
* | ||
* normalizeUrl('www.sindresorhus.com?foo=bar&ref=test_ref', { | ||
* removeQueryParameters: ['ref'] | ||
* }); | ||
* //=> 'http://sindresorhus.com/?foo=bar' | ||
*/ | ||
readonly removeQueryParameters?: (RegExp | string)[]; | ||
normalizeUrl('https://sindresorhus.com:80/', {forceHttp: true}); | ||
//=> 'http://sindresorhus.com' | ||
``` | ||
*/ | ||
readonly forceHttp?: boolean; | ||
/** | ||
* Removes trailing slash. | ||
* | ||
* **Note**: Trailing slash is always removed if the URL doesn't have a pathname. | ||
* | ||
* @default true | ||
* | ||
* @example | ||
* | ||
* 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' | ||
*/ | ||
readonly removeTrailingSlash?: boolean; | ||
/** | ||
Normalizes `http:` URLs to `https:`. | ||
/** | ||
* 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. | ||
* | ||
* @default false | ||
* | ||
* @example | ||
* | ||
* normalizeUrl('www.sindresorhus.com/foo/default.php', { | ||
* removeDirectoryIndex: [/^default\.[a-z]+$/] | ||
* }); | ||
* //=> 'http://sindresorhus.com/foo' | ||
*/ | ||
readonly removeDirectoryIndex?: (RegExp | string)[]; | ||
This option can't be used with the `forceHttp` option at the same time. | ||
/** | ||
* Sorts the query parameters alphabetically by key. | ||
* | ||
* @default true | ||
* | ||
* @example | ||
* | ||
* normalizeUrl('www.sindresorhus.com?b=two&a=one&c=three', { | ||
* sortQueryParameters: false | ||
* }); | ||
* //=> 'http://sindresorhus.com/?b=two&a=one&c=three' | ||
*/ | ||
readonly sortQueryParameters?: boolean; | ||
@default false | ||
@example | ||
``` | ||
normalizeUrl('https://sindresorhus.com:80/'); | ||
//=> 'https://sindresorhus.com' | ||
normalizeUrl('http://sindresorhus.com:80/', {forceHttps: true}); | ||
//=> 'https://sindresorhus.com' | ||
``` | ||
*/ | ||
readonly forceHttps?: boolean; | ||
/** | ||
Strip the [authentication](https://en.wikipedia.org/wiki/Basic_access_authentication) part of a URL. | ||
@default true | ||
@example | ||
``` | ||
normalizeUrl('user:password@sindresorhus.com'); | ||
//=> 'https://sindresorhus.com' | ||
normalizeUrl('user:password@sindresorhus.com', {stripAuthentication: false}); | ||
//=> 'https://user:password@sindresorhus.com' | ||
``` | ||
*/ | ||
readonly stripAuthentication?: boolean; | ||
/** | ||
Removes hash from the URL. | ||
@default false | ||
@example | ||
``` | ||
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' | ||
``` | ||
*/ | ||
readonly stripHash?: boolean; | ||
/** | ||
Removes HTTP(S) protocol from an URL `http://sindresorhus.com` → `sindresorhus.com`. | ||
@default false | ||
@example | ||
``` | ||
normalizeUrl('https://sindresorhus.com'); | ||
//=> 'https://sindresorhus.com' | ||
normalizeUrl('sindresorhus.com', {stripProtocol: true}); | ||
//=> 'sindresorhus.com' | ||
``` | ||
*/ | ||
readonly stripProtocol?: boolean; | ||
/** | ||
Removes `www.` from the URL. | ||
@default true | ||
@example | ||
``` | ||
normalizeUrl('http://www.sindresorhus.com'); | ||
//=> 'http://sindresorhus.com' | ||
normalizeUrl('http://www.sindresorhus.com', {stripWWW: false}); | ||
//=> 'http://www.sindresorhus.com' | ||
``` | ||
*/ | ||
readonly stripWWW?: boolean; | ||
/** | ||
Removes query parameters that matches any of the provided strings or regexes. | ||
@default [/^utm_\w+/i] | ||
@example | ||
``` | ||
normalizeUrl('www.sindresorhus.com?foo=bar&ref=test_ref', { | ||
removeQueryParameters: ['ref'] | ||
}); | ||
//=> 'http://sindresorhus.com/?foo=bar' | ||
``` | ||
*/ | ||
readonly removeQueryParameters?: (RegExp | string)[]; | ||
/** | ||
Removes trailing slash. | ||
__Note__: Trailing slash is always removed if the URL doesn't have a pathname. | ||
@default true | ||
@example | ||
``` | ||
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' | ||
``` | ||
*/ | ||
readonly removeTrailingSlash?: boolean; | ||
/** | ||
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. | ||
@default false | ||
@example | ||
``` | ||
normalizeUrl('www.sindresorhus.com/foo/default.php', { | ||
removeDirectoryIndex: [/^default\.[a-z]+$/] | ||
}); | ||
//=> 'http://sindresorhus.com/foo' | ||
``` | ||
*/ | ||
readonly removeDirectoryIndex?: (RegExp | string)[]; | ||
/** | ||
Sorts the query parameters alphabetically by key. | ||
@default true | ||
@example | ||
``` | ||
normalizeUrl('www.sindresorhus.com?b=two&a=one&c=three', { | ||
sortQueryParameters: false | ||
}); | ||
//=> 'http://sindresorhus.com/?b=two&a=one&c=three' | ||
``` | ||
*/ | ||
readonly sortQueryParameters?: boolean; | ||
} | ||
} | ||
/** | ||
* [Normalize](https://en.wikipedia.org/wiki/URL_normalization) a URL. | ||
* | ||
* @param url - URL to normalize. | ||
*/ | ||
export default function normalizeUrl(url: string, options?: Options): string; | ||
declare const normalizeUrl: { | ||
/** | ||
[Normalize](https://en.wikipedia.org/wiki/URL_normalization) a URL. | ||
@param url - URL to normalize. | ||
@example | ||
``` | ||
import 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' | ||
``` | ||
*/ | ||
(url: string, options?: normalizeUrl.Options): string; | ||
// TODO: Remove this for the next major release, refactor the whole definition to: | ||
// declare function normalizeUrl(url: string, options?: normalizeUrl.Options): string; | ||
// export = normalizeUrl; | ||
default: typeof normalizeUrl; | ||
}; | ||
export = normalizeUrl; |
@@ -159,2 +159,3 @@ 'use strict'; | ||
module.exports = normalizeUrl; | ||
// TODO: Remove this for the next major release | ||
module.exports.default = normalizeUrl; |
{ | ||
"name": "normalize-url", | ||
"version": "4.2.0", | ||
"version": "4.3.0", | ||
"description": "Normalize a URL", | ||
@@ -16,3 +16,3 @@ "license": "MIT", | ||
"scripts": { | ||
"test": "xo && nyc ava && tsd-check" | ||
"test": "xo && nyc ava && tsd" | ||
}, | ||
@@ -39,8 +39,8 @@ "files": [ | ||
"devDependencies": { | ||
"ava": "^1.2.1", | ||
"coveralls": "^3.0.0", | ||
"nyc": "^13.1.0", | ||
"tsd-check": "^0.3.0", | ||
"ava": "^1.4.1", | ||
"coveralls": "^3.0.3", | ||
"nyc": "^13.3.0", | ||
"tsd": "^0.7.2", | ||
"xo": "^0.24.0" | ||
} | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
16015
294