import Fuse from 'fuse.js'; import type { FlatSkillEntry } from '$lib/types'; const fuseOptions: ConstructorParameters>[1] = { keys: [ { name: 'frontmatter.name', weight: 3 }, { name: 'frontmatter.description', weight: 2 }, { name: 'frontmatter.metadata.author', weight: 1 }, { name: 'owner', weight: 1 }, { name: 'repo', weight: 1 }, ], threshold: 0.3, includeScore: true, }; export function createSearchIndex(skills: FlatSkillEntry[]): Fuse { return new Fuse(skills, fuseOptions); } export function searchSkills(fuse: Fuse, query: string): FlatSkillEntry[] { if (!query.trim()) return []; return fuse.search(query).map((result) => result.item); }