1
0
mirror of https://github.com/Llewellynvdm/conky.git synced 2024-11-16 18:15:17 +00:00
conky/web/utils/search.ts
2022-10-01 20:06:19 -04:00

42 lines
956 B
TypeScript

import Fuse 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: Fuse.FuseIndexRecords
}
list: SearchItem[]
}
export function getSearchIndex() {
const cs: SearchItem[] = getConfigSettings().values.map((v) => ({
kind: 'config',
name: v.name,
desc: v.desc,
}))
const vars: SearchItem[] = getVariables().values.map((v) => ({
kind: 'var',
name: v.name,
desc: v.desc,
}))
const lua: SearchItem[] = getLua().values.map((v) => ({
kind: 'lua',
name: v.name,
desc: v.desc,
}))
const list: SearchItem[] = [...cs, ...vars, ...lua]
return {
list: list.map((item) => ({
...item,
desc: item.desc.substring(0, 121),
})),
index: Fuse.createIndex<SearchItem>(['name', 'desc'], list).toJSON(),
}
}