export type SortDir = 'ASC' | 'DESC' export interface Sort { attribute: string dir: SortDir } export interface PageRequest { page: number size: number sorts: Sort[] } export function toQueryParams(pageRequest: PageRequest): string { const params = new URLSearchParams() params.append('page', pageRequest.page + '') params.append('size', pageRequest.size + '') for (const sort of pageRequest.sorts) { params.append('sort', sort.attribute + ',' + sort.dir) } return params.toString() } export interface Page { items: T[] pageRequest: PageRequest }