UNPKG

@meilisearch/instant-meilisearch

Version:
38 lines (32 loc) 901 B
import type { MultiSearchResult, InstantSearchPagination, PaginationState, } from '../../types/index.js' function adaptNbPages( searchResponse: MultiSearchResult<Record<string, any>>, hitsPerPage: number ): number { if (searchResponse.totalPages != null) { return searchResponse.totalPages } // Avoid dividing by 0 if (hitsPerPage === 0) { return 0 } const { limit = 20, offset = 0, hits } = searchResponse const additionalPage = hits.length >= limit ? 1 : 0 return offset / hitsPerPage + 1 + additionalPage } export function adaptPaginationParameters( searchResponse: MultiSearchResult<Record<string, any>>, paginationState: PaginationState ): InstantSearchPagination & { nbPages: number } { const { hitsPerPage, page } = paginationState const nbPages = adaptNbPages(searchResponse, hitsPerPage) return { page, nbPages, hitsPerPage, } }