Files
saladeaula.digital/packages/util/src/meili.ts
2025-11-17 14:37:50 -03:00

35 lines
681 B
TypeScript

import { Meilisearch, type SearchResponse } from 'meilisearch'
const MAX_HITS_PER_PAGE = 100
export async function createSearch({
query,
filter = undefined,
index,
page,
hitsPerPage = 25,
sort,
env
}: {
query?: string
filter?: string
index: string
page?: number
hitsPerPage?: number
sort: string[]
env: any
}): Promise<SearchResponse> {
const host = env.MEILI_HOST
const apiKey = env.MEILI_API_KEY
const client = new Meilisearch({ host, apiKey })
const index_ = client.index(index)
return index_.search(query, {
sort,
filter,
page,
hitsPerPage:
hitsPerPage > MAX_HITS_PER_PAGE ? MAX_HITS_PER_PAGE : hitsPerPage
})
}