Add stable cursor pagination to Knex query builder. This package also supports relay connection result.
yarn add knex-cursor-pagination
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])
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,
})
- Currently not fully working with backwards pagination
- Using
orderByRaw
you need explicity to provideASC
orDESC
The package is available as open source under the terms of the MIT License.