import type { QueryFilters } from './types'; export function sanitizeSortFilters( filters: QueryFilters = {}, allowedFields: T, defaults: Partial> = {}, ): QueryFilters { const { orderBy, sortDescending, ...rest } = filters; const fallbackOrderBy = defaults.orderBy; const fallbackSortDescending = defaults.sortDescending; const isAllowed = orderBy ? allowedFields.includes(orderBy as T[number]) : false; return { ...rest, ...(isAllowed ? { orderBy, sortDescending, } : { ...(fallbackOrderBy && { orderBy: fallbackOrderBy }), ...(fallbackSortDescending !== undefined && { sortDescending: fallbackSortDescending, }), }), }; }