docs: add search to workflows reference (#11054)
* docs: add search to workflows reference * fix error
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
import MiniSearch, { Options as MiniSearchOptions } from "minisearch"
|
||||
|
||||
type BaseSearchRecord = Record<string, unknown>
|
||||
|
||||
type GetLocalSearchInput<T extends BaseSearchRecord = BaseSearchRecord> = {
|
||||
docs: T[]
|
||||
searchableFields: string[]
|
||||
options?: Omit<MiniSearchOptions, "fields">
|
||||
}
|
||||
|
||||
type SearchResult<T> = (T & {
|
||||
terms?: string[]
|
||||
})[]
|
||||
|
||||
export type LocalSearch<T extends BaseSearchRecord = BaseSearchRecord> =
|
||||
MiniSearch & {
|
||||
search: (query: string) => SearchResult<T>
|
||||
}
|
||||
|
||||
export const getLocalSearch = <T extends BaseSearchRecord = BaseSearchRecord>({
|
||||
docs,
|
||||
searchableFields,
|
||||
options,
|
||||
}: GetLocalSearchInput<T>): LocalSearch<T> => {
|
||||
const miniSearch = new MiniSearch({
|
||||
fields: searchableFields,
|
||||
...options,
|
||||
})
|
||||
miniSearch.addAll(docs)
|
||||
|
||||
return miniSearch as LocalSearch<T>
|
||||
}
|
||||
@@ -4,6 +4,7 @@ export * from "./check-sidebar-item-visibility"
|
||||
export * from "./decode-str"
|
||||
export * from "./dom-utils"
|
||||
export * from "./get-link-with-base-path"
|
||||
export * from "./get-local-search"
|
||||
export * from "./get-navbar-items"
|
||||
export * from "./os-browser-utils"
|
||||
export * from "./get-scrolled-top"
|
||||
|
||||
Reference in New Issue
Block a user