diff --git a/src/services/nodeSearchService.ts b/src/services/nodeSearchService.ts index d2388fc7b..c29507f2e 100644 --- a/src/services/nodeSearchService.ts +++ b/src/services/nodeSearchService.ts @@ -79,9 +79,22 @@ export class NodeSearchService { const results = matchedNodes.filter((node) => { return filters.every((filterAndValue) => { const { filterDef, value } = filterAndValue - return filterDef.matches(node, value, { wildcard }) + return filterDef.matches(node, value) }) }) + if (matchWildcards) { + const alreadyValid = new Set(results.map((result) => result.name)) + results.push( + ...matchedNodes + .filter((node) => !alreadyValid.has(node.name)) + .filter((node) => { + return filters.every((filterAndValue) => { + const { filterDef, value } = filterAndValue + return filterDef.matches(node, value, { wildcard }) + }) + }) + ) + } return options?.limit ? results.slice(0, options.limit) : results } diff --git a/src/utils/fuseUtil.ts b/src/utils/fuseUtil.ts index 8967ccd2a..d0b8020d1 100644 --- a/src/utils/fuseUtil.ts +++ b/src/utils/fuseUtil.ts @@ -62,10 +62,9 @@ export class FuseFilter { return true } const options = this.getItemOptions(item) - return ( - options.includes(value) || - (!!wildcard && options.some((option) => option === wildcard)) - ) + return wildcard + ? options.some((option) => option === wildcard) + : options.includes(value) } }