@@ -222,6 +222,10 @@ export class ObjectArrayFilterer<DataKey extends string | number = string> {
222
222
const useExtensionBonus = Boolean ( options . useExtensionBonus )
223
223
224
224
Binding . validate_filter ( query , maxResult , usePathScoring , useExtensionBonus )
225
+ if ( query . length === 0 ) {
226
+ // optimization for query === ""
227
+ return [ ]
228
+ }
225
229
// NOTE calling obj.filter is slower than (obj.filterIndices then map) due to the interop overhead
226
230
return this . obj . filterIndices ( query , maxResult , usePathScoring , useExtensionBonus )
227
231
}
@@ -356,6 +360,10 @@ export class TreeFilterer<DataKey extends string = string, ChildrenKey extends s
356
360
const useExtensionBonus = Boolean ( options . useExtensionBonus )
357
361
358
362
Binding . validate_filterTree ( query , maxResult , usePathScoring , useExtensionBonus )
363
+ if ( query . length === 0 ) {
364
+ // optimization for query === ""
365
+ return [ ]
366
+ }
359
367
return this . obj . filterTree ( query , maxResult , usePathScoring , useExtensionBonus )
360
368
}
361
369
@@ -369,6 +377,10 @@ export class TreeFilterer<DataKey extends string = string, ChildrenKey extends s
369
377
*/
370
378
filterIndices ( query : string , options : TreeFilterOptions = { } ) : TreeFilterIndicesResult [ ] {
371
379
parseOptions ( options )
380
+ if ( query . length === 0 ) {
381
+ // optimization for query === ""
382
+ return [ ]
383
+ }
372
384
return this . obj . filterIndicesTree (
373
385
query ,
374
386
options . maxResults ?? 0 ,
0 commit comments