staticql
Version:
Type-safe query engine for static content including Markdown, YAML, JSON, and more.
49 lines (48 loc) • 1.13 kB
TypeScript
export interface PageInfo {
hasNextPage: boolean;
hasPreviousPage: boolean;
startCursor?: string;
endCursor?: string;
}
export type CursorObject = {
slug: string;
order: {
[key: string]: string;
};
};
/**
* Create PageInfo.
*
* @param page
* @param pageSize
* @param startIndex
* @param matchedLen
* @param direction
* @param encodeCursor
* @returns page info for cursor pagination
*/
export declare function createPageInfo<T>(page: T[], pageSize: number, startIndex: number, matchedLen: number, direction: "after" | "before", encodeCursor: (item: T) => string): PageInfo;
/**
* Get sliced records.
*
* @param records
* @param startIndex
* @param pageSize
* @param direction
* @returns
*/
export declare function getPageSlice<T>(records: T[], startIndex: number, pageSize: number, direction: "after" | "before"): T[];
/**
* Encode for cursor.
*
* @param slug
* @returns
*/
export declare function encodeCursor(obj: CursorObject): string;
/**
* Decode for cursor.
*
* @param cursor
* @returns
*/
export declare function decodeCursor(cursor: string): CursorObject;