knex-cursor-pagination
v0.3.0
Published
Knex cursor pagination with Relay pagination support
Downloads
16
Maintainers
Readme
Knex Cursor Pagination
Add stable cursor pagination to Knex query builder. This package also supports relay connection result.
Installation
yarn add knex-cursor-pagination
Usage
import { knexCursorPagination, getCursor } from 'knex-cursor-pagination'
let query = knex
.queryBuilder()
.select('users.*')
.from('users')
.orderBy('posts.created_at', 'DESC')
query = knexCursorPagination(query, { after: 'your-cursor' })
const results = await query;
const endCursor = getCursor(results[results.length - 1]);
Relay Pagination
Use with Relay pagination for example in Apollo Server
import { relayConnection } from 'knex-cursor-pagination'
const args = {
first: 10,
after: 'your-cursor',
}
const query = knex
.queryBuilder()
.select('users.*')
.from('users')
.orderBy('posts.created_at', 'DESC')
const result = relayConnection({
query,
args,
})
Known issues
- Currently not fully working with backwards pagination
- Using
orderByRaw
you need explicity to provideASC
orDESC
License
The package is available as open source under the terms of the MIT License.