1.0.5 • Published 6 months ago

@noction/vue-use-flexsearch v1.0.5

Weekly downloads
-
License
MIT
Repository
github
Last release
6 months ago

useFlexSearch

NPM version NPM downloads codecov

Wrapper for Flexsearch.

Install

npm i -S flexsearch @noction/vue-use-flexsearch

API

function useFlexSearch <T extends Record<"id", Id>, D = unknown> (
    query: Ref<string>,
    providedIndex: Ref<Index | Document<D> | null>,
    store?: Ref<Array<T>>,
    searchOptions: SearchOptions = {},
    limit = 10
): { results: ComputedRef<T[]> }

By utilizing the useFlexSearch composable, you can provide your search query, index, and store as inputs, and obtain the results as an array. This optimizes searches by memoizing them, ensuring efficient searching.

Parameters

NameTypeDescriptionDefault
queryRefThe keyword which we are looking for
providedIndexRef or Ref<Document>The Index or Document from Flexsearch
storeRef<Array>The list of item where we are looking
searchOptionsObjectSearch options{}
limit10Max number of results to be returned10

Usage

This code snippet creates a text input field and utilizes FlexSearch to execute a search on the index when the query is changed.

<script setup>
import { ref } from 'vue'
import { useFlexSearch } from '@noction/vue-use-flexsearch'
    
const store = [
  { id: 1, title: 'The Jungle Book' },
  { id: 2, title: 'Darcula' },
  { id: 3, title: 'Shōgun' }
]
const index = new Index({ preset: 'match' })

index.add(store[0])
index.add(store[1])
index.add(store[2])

const query = ref('')
const { results } = useFlexSearch(query, index, store)
</script>

<template>
  <div>
    <input v-model="query">
    <h1>Results</h1>
    <ul>
      <li
          v-for="result in results"
          :key="result.id"
          v-text="result.title"
      />
    </ul>
  </div>
</template>
1.0.5

6 months ago

1.0.4

6 months ago

1.0.2

1 year ago

1.0.3

11 months ago

1.0.1

1 year ago

1.0.0

1 year ago

0.0.0

1 year ago