diff --git a/src/services/nodeSearchService.ts b/src/services/nodeSearchService.ts index c29507f2e..d54c97e1f 100644 --- a/src/services/nodeSearchService.ts +++ b/src/services/nodeSearchService.ts @@ -35,7 +35,9 @@ export class NodeSearchService { name: 'Input Type', invokeSequence: 'i', getItemOptions: (node) => - Object.values(node.inputs ?? []).map((input) => input.type), + Object.values(node.inputs ?? []).flatMap((input) => + input.type.split(',') + ), fuseOptions }) @@ -43,7 +45,8 @@ export class NodeSearchService { id: 'output', name: 'Output Type', invokeSequence: 'o', - getItemOptions: (node) => node.outputs.map((output) => output.type), + getItemOptions: (node) => + node.outputs.flatMap((output) => output.type.split(',')), fuseOptions }) diff --git a/src/utils/fuseUtil.ts b/src/utils/fuseUtil.ts index d0b8020d1..6969bbe06 100644 --- a/src/utils/fuseUtil.ts +++ b/src/utils/fuseUtil.ts @@ -62,9 +62,12 @@ export class FuseFilter { return true } const options = this.getItemOptions(item) - return wildcard - ? options.some((option) => option === wildcard) - : options.includes(value) + if (wildcard) return options.some((option) => option === wildcard) + if (typeof value !== 'string' || !value.includes(',')) + return options.includes(value) + const values = value.split(',') + //Alas, typescript doesn't understand string satisfies O + return values.some((v) => options.includes(v as O)) } }