@@ -31,12 +31,12 @@ export const forceProtocol = function (
3131 return url ;
3232} ;
3333
34- export function stripIndexPages ( url : ParsedUrl , indexes ?: string [ ] ) : ParsedUrl {
35- indexes = indexes ?? [ 'index.htm' , 'index.html' , 'default.aspx' , 'index.php' ] ;
36- for ( const i of indexes ) {
37- if ( url . pathname . endsWith ( i ) ) {
38- url . pathname = url . pathname . replace ( i , '' ) ;
39- }
34+ export function stripIndexPages (
35+ url : ParsedUrl ,
36+ pattern = '**/{index,default}.{htm,html,aspx,php}' ,
37+ ) : ParsedUrl {
38+ if ( minimatch ( url . pathname , pattern ) ) {
39+ url . pathname = url . pathname . split ( '/' ) . slice ( - 1 ) . join ( '/' ) ;
4040 }
4141
4242 return url ;
@@ -60,15 +60,10 @@ export function stripPort(url: ParsedUrl): ParsedUrl {
6060
6161export function stripQueryParameters (
6262 url : ParsedUrl ,
63- pattern : string | RegExp = '{utm_*,src,referer,referrer }' ,
63+ pattern = '{utm_*,src}' ,
6464) : ParsedUrl {
6565 for ( const [ name ] of url . searchParams ) {
66- if ( typeof pattern === 'string' ) {
67- if ( minimatch ( name , pattern ) ) {
68- url . searchParams . delete ( name ) ;
69- continue ;
70- }
71- } else if ( pattern . test ( name ) ) {
66+ if ( minimatch ( name , pattern ) ) {
7267 url . searchParams . delete ( name ) ;
7368 continue ;
7469 }
@@ -77,13 +72,8 @@ export function stripQueryParameters(
7772 return url ;
7873}
7974
80- export function stripSubdomains (
81- url : ParsedUrl ,
82- pattern : string | RegExp = / ^ w { 2 , 3 } \d * $ / ,
83- ) : ParsedUrl {
84- if ( typeof pattern === 'string' ) {
85- if ( minimatch ( url . subdomain , pattern ) ) url . subdomain = '' ;
86- } else if ( pattern . test ( url . subdomain ) ) url . subdomain = '' ;
75+ export function stripSubdomains ( url : ParsedUrl , pattern = 'ww*' ) : ParsedUrl {
76+ if ( minimatch ( url . subdomain , pattern ) ) url . subdomain = '' ;
8777 return url ;
8878}
8979
0 commit comments