@@ -10006,26 +10006,25 @@ export function tryParsePattern(pattern: string): string | Pattern | undefined {
10006
10006
/** @internal */
10007
10007
export interface ParsedPatterns {
10008
10008
matchableStringSet : ReadonlySet < string > | undefined ;
10009
- sortedPatterns : ( readonly Pattern [ ] ) | undefined ;
10009
+ patterns : ( readonly Pattern [ ] ) | undefined ;
10010
10010
}
10011
10011
10012
10012
const parsedPatternsCache = new WeakMap < MapLike < string [ ] > , ParsedPatterns > ( ) ;
10013
10013
10014
10014
/**
10015
- * Divides patterns into a set of exact specifiers and sorted patterns.
10016
- * NOTE that this function caches, and assumes the same `paths` argument will
10017
- * never be provided with a different value for `sortByAggregateLength`.
10015
+ * Divides patterns into a set of exact specifiers and patterns.
10016
+ * NOTE that this function caches the result based on object identity.
10018
10017
*
10019
10018
* @internal
10020
10019
*/
10021
- export function tryParsePatterns ( paths : MapLike < string [ ] > , sortByAggregateLength : boolean = false ) : ParsedPatterns {
10020
+ export function tryParsePatterns ( paths : MapLike < string [ ] > ) : ParsedPatterns {
10022
10021
let result = parsedPatternsCache . get ( paths ) ;
10023
10022
if ( result !== undefined ) {
10024
10023
return result ;
10025
10024
}
10026
10025
10027
10026
let matchableStringSet : Set < string > | undefined ;
10028
- let sortedPatterns : Pattern [ ] | undefined ;
10027
+ let patterns : Pattern [ ] | undefined ;
10029
10028
10030
10029
const pathList = getOwnKeys ( paths ) ;
10031
10030
for ( const path of pathList ) {
@@ -10037,23 +10036,15 @@ export function tryParsePatterns(paths: MapLike<string[]>, sortByAggregateLength
10037
10036
( matchableStringSet ??= new Set ( ) ) . add ( patternOrStr ) ;
10038
10037
}
10039
10038
else {
10040
- ( sortedPatterns ??= [ ] ) . push ( patternOrStr ) ;
10039
+ ( patterns ??= [ ] ) . push ( patternOrStr ) ;
10041
10040
}
10042
10041
}
10043
10042
10044
- sortedPatterns ?. sort ( ( a , b ) => {
10045
- const prefixComparison = compareStringsCaseSensitive ( a . prefix , b . prefix ) ;
10046
- if ( prefixComparison === 0 && sortByAggregateLength ) {
10047
- return a . suffix . length - b . suffix . length ;
10048
- }
10049
- return prefixComparison ;
10050
- } ) ;
10051
-
10052
10043
parsedPatternsCache . set (
10053
10044
paths ,
10054
10045
result = {
10055
10046
matchableStringSet,
10056
- sortedPatterns ,
10047
+ patterns ,
10057
10048
} ,
10058
10049
) ;
10059
10050
@@ -10121,17 +10112,17 @@ export const emptyFileSystemEntries: FileSystemEntries = {
10121
10112
* @internal
10122
10113
*/
10123
10114
export function matchPatternOrExact ( patternOrStrings : ParsedPatterns , candidate : string ) : string | Pattern | undefined {
10124
- const { matchableStringSet, sortedPatterns } = patternOrStrings ;
10115
+ const { matchableStringSet, patterns } = patternOrStrings ;
10125
10116
10126
10117
if ( matchableStringSet ?. has ( candidate ) ) {
10127
10118
return candidate ;
10128
10119
}
10129
10120
10130
- if ( sortedPatterns === undefined || sortedPatterns . length === 0 ) {
10121
+ if ( patterns === undefined || patterns . length === 0 ) {
10131
10122
return undefined ;
10132
10123
}
10133
10124
10134
- return findBestPatternMatch ( sortedPatterns , _ => _ , candidate ) ;
10125
+ return findBestPatternMatch ( patterns , _ => _ , candidate ) ;
10135
10126
}
10136
10127
10137
10128
/** @internal */
0 commit comments