drizzle-pagination
Version:
Easily add cursor pagination to your Drizzle ORM queries.
28 lines (25 loc) • 961 B
TypeScript
import { AnyColumn, SQL } from 'drizzle-orm';
declare function withCursorPagination<PrimaryColumn extends AnyColumn, TableColumns extends PrimaryColumn['table']['_']['columns'], SecondaryColumn extends TableColumns[keyof TableColumns], PrimaryCursor extends ReturnType<PrimaryColumn['mapFromDriverValue']> | undefined, SecondaryCursor extends ReturnType<SecondaryColumn['mapFromDriverValue']> | undefined, Order extends 'asc' | 'desc'>({ cursors, limit, where: inputWhere }: {
limit: number;
where?: SQL;
} & ({
cursors: [
[
PrimaryColumn,
Order
] | [PrimaryColumn, Order, PrimaryCursor]
];
} | {
cursors: [
[
PrimaryColumn,
Order
] | [PrimaryColumn, Order, PrimaryCursor],
([SecondaryColumn, Order] | [SecondaryColumn, Order, SecondaryCursor])
];
})): {
orderBy: SQL[];
limit: number;
where?: SQL;
};
export { withCursorPagination };