UNPKG

@dbs-portal/tool-mock

Version:

API mocking toolkit using MSW for DBS Portal development workflows

98 lines 2.84 kB
/** * Pagination utilities for mock responses */ import type { PaginatedResponse, PaginatedMockOptions } from './types'; /** * Create a paginated response from items */ export declare function createPaginatedResponse<T = any>(options: PaginatedMockOptions<T>): { data: PaginatedResponse<T>; items: T[]; }; /** * Create pagination metadata only */ export declare function createPaginationMeta(page: number, pageSize: number, total: number): PaginatedResponse<any>['meta']; /** * Parse pagination parameters from URL search params */ export declare function parsePaginationParams(searchParams: URLSearchParams, defaults?: { page: number; pageSize: number; maxPageSize: number; }): { page: number; pageSize: number; }; /** * Create cursor-based pagination response */ export declare function createCursorPaginatedResponse<T = any>(items: T[], cursor: string | null, limit: number, getCursor: (item: T) => string): { data: T[]; meta: { hasNextPage: boolean; hasPreviousPage: boolean; nextCursor: string | null; previousCursor: string | null; limit: number; }; }; /** * Create offset-based pagination response */ export declare function createOffsetPaginatedResponse<T = any>(items: T[], offset: number, limit: number): { data: T[]; meta: { offset: number; limit: number; total: number; hasMore: boolean; }; }; /** * Create infinite scroll pagination response */ export declare function createInfiniteScrollResponse<T = any>(items: T[], page: number, pageSize: number): { data: T[]; meta: { page: number; pageSize: number; hasMore: boolean; nextPage: number | null; }; }; /** * Validate pagination parameters */ export declare function validatePaginationParams(page: number, pageSize: number, maxPageSize?: number): { valid: boolean; errors: string[]; }; /** * Calculate pagination ranges for UI */ export declare function calculatePaginationRanges(currentPage: number, totalPages: number, maxVisible?: number): { pages: number[]; showFirst: boolean; showLast: boolean; showPrevious: boolean; showNext: boolean; }; /** * Create pagination links for API responses */ export declare function createPaginationLinks(baseUrl: string, page: number, pageSize: number, totalPages: number): { first?: string; previous?: string; next?: string; last?: string; }; /** * Create search and filter pagination */ export declare function createSearchPaginatedResponse<T = any>(items: T[], searchQuery: string, searchFields: (keyof T)[], filters: Record<string, any>, page: number, pageSize: number): { data: PaginatedResponse<T>; filteredCount: number; totalCount: number; }; //# sourceMappingURL=pagination.d.ts.map