UNPKG

@ahoo-wang/fetcher-wow

Version:

Support for Wow(https://github.com/Ahoo-Wang/Wow) in Fetcher

53 lines 2.91 kB
import { FieldSort, SortDirection } from './sort'; import { ListQuery } from './queryable'; import { Condition } from './condition'; /** * Represents a cursor-based pagination query configuration. * This interface defines the structure for implementing cursor-based pagination, * which is an efficient way to paginate through large datasets. */ export interface CursorQuery<FIELDS extends string = string> { /** Field name used for cursor-based sorting and filtering */ field: FIELDS; /** * Cursor ID marking the starting point (exclusive) * Uses CURSOR_ID_START constant for initial query */ cursorId?: string; /** Sort direction for pagination traversal (ascending or descending) */ direction?: SortDirection; /** Base query object to be enhanced with cursor-based parameters */ query: ListQuery; } /** Special cursor ID value representing the starting point of a dataset */ export declare const CURSOR_ID_START = "~"; /** * Generates a cursor condition for filtering records relative to the cursor position * @param params - Cursor parameters excluding the base query * @param params.field - The field to apply the cursor condition on * @param params.cursorId - The cursor ID to compare against (defaults to CURSOR_ID_START) * @param params.direction - Sort direction which determines the comparison operator (defaults to SortDirection.DESC) * @returns Condition object for filtering records based on cursor position */ export declare function cursorCondition<FIELDS extends string = string>({ field, cursorId, direction, }: Omit<CursorQuery<FIELDS>, 'query'>): Condition<FIELDS>; /** * Creates a sort configuration based on cursor parameters * @param params - Cursor parameters excluding the base query * @param params.field - The field to sort by * @param params.direction - Sort direction (defaults to SortDirection.DESC) * @returns FieldSort configuration for cursor-based pagination */ export declare function cursorSort<FIELDS extends string = string>({ field, direction, }: Omit<CursorQuery<FIELDS>, 'query'>): FieldSort<FIELDS>; /** * Enhances a base query with cursor-based pagination parameters * This function combines the cursor condition with the existing query condition * and sets the sorting according to the cursor parameters. * @param options - Complete cursor query configuration * @param options.field - The field used for cursor-based sorting and filtering * @param options.cursorId - The cursor ID marking the starting point (exclusive) * @param options.direction - Sort direction for pagination traversal * @param options.query - Base query object to be enhanced with cursor-based parameters * @returns Enhanced query with cursor-based filtering and sorting */ export declare function cursorQuery<FIELDS extends string = string>(options: CursorQuery<FIELDS>): ListQuery; //# sourceMappingURL=cursorQuery.d.ts.map