UNPKG

@scalar/api-reference

Version:

Generate beautiful API references from OpenAPI documents

34 lines (33 loc) 870 B
import { computed, toValue, ref } from "vue"; import { createFuseInstance } from "../helpers/create-fuse-instance.js"; import { createSearchIndex } from "../helpers/create-search-index.js"; const MAX_SEARCH_RESULTS = 25; function useSearchIndex(document) { const fuse = computed(() => { const instance = createFuseInstance(); instance.setCollection(createSearchIndex(toValue(document))); return instance; }); const query = ref(""); const results = computed(() => { if (query.value.length !== 0) { return fuse.value.search(query.value, { limit: MAX_SEARCH_RESULTS }); } const allEntries = fuse.value._docs; return allEntries.slice(0, MAX_SEARCH_RESULTS).map( (item, index) => ({ item, refIndex: index }) ); }); return { results, query }; } export { useSearchIndex };