import type {Slot, VNode} from 'vue' export default (slot: Slot | undefined, filterBy: string): VNode[] => (slot?.() ?? []) .reduce((arr: VNode[], slot: VNode) => { if (typeof slot.type === 'symbol') { arr = arr.concat(slot.children as unknown as VNode) } else { arr.push(slot) } return arr }, []) .filter((child) => (child.type as {__name: string} | undefined)?.__name === filterBy)