1
0
mirror of https://github.com/Llewellynvdm/conky.git synced 2024-10-02 06:59:09 +00:00
conky/web/utils/search.ts
2024-02-26 13:21:37 -05:00

41 lines
958 B
TypeScript

import Fuse, { FuseIndexRecords } from 'fuse.js'
import { getConfigSettings, getLua, getVariables } from './doc-utils'
export interface SearchItem {
kind: string
name: string
desc: string
}
export interface SearchIndex {
index: {
keys: readonly string[]
records: FuseIndexRecords
}
list: SearchItem[]
}
export function createSearchIndex(): SearchIndex {
const cs: SearchItem[] = getConfigSettings().values.map((v) => ({
kind: 'config',
name: v.name,
desc: v.desc.substring(0, 121),
}))
const vars: SearchItem[] = getVariables().values.map((v) => ({
kind: 'var',
name: v.name,
desc: v.desc.substring(0, 121),
}))
const lua: SearchItem[] = getLua().values.map((v) => ({
kind: 'lua',
name: v.name,
desc: v.desc.substring(0, 121),
}))
const list: SearchItem[] = [...cs, ...vars, ...lua]
return {
list,
index: Fuse.createIndex<SearchItem>(['name', 'desc'], list).toJSON(),
}
}