1.5.6 • Published 24 days ago
@graphql-pagination/sql-knex v1.5.6
GraphQL Pagination / SQL Knex
Module provides SQL DataSource for Graphql Pagination based on Knex.js.
Usage
Initialize the SqlKnexDataSource with following config:
const ds = new SqlKnexDataSource({
tableName: "book", // Base table name
idFieldName: "id", // column used as cursor.
knex: knex, // pass your knex instance
baseQuery: (args) => { return knex("book") }, // [Optional] Customize baseQuery in case of more complicated joins or additional filters.
});
and pass it to dataSourcePager
like any other.
const pager = dataSourcePager({
dataSource: ds,
typeName: "Book",
});
Example
// BookConnection is generated by dataSourcePager
const typeDefs = gql`
type Book {
id: ID!
title: String
author: String
published: DateTime
}
type Query {
booksAsc(first: Int = 10 after: String author: String): BookConnection
booksDesc(last: Int = 10 before: String author: String): BookConnection
}
`;
const baseQueryFilter = (args) => {
return knex(tableName)
.where(builder => {
if (args.author) builder.where("author", args.author);
});
};
const ds = new SqlKnexDataSource({
tableName: tableName,
idFieldName: "id",
knex: knex,
baseQuery: baseQueryFilter,
});
const pager = new dataSourcePager({
dataSource: ds,
typeName: "Book",
});
const resolvers = {
Query: {
booksAsc: (_, args) => pager.forwardResolver(args),
booksDesc: (_, args) => pager.backwardResolver(args),
},
};
const createApolloServer = () => {
return new ApolloServer({
typeDefs: [
typeDefs,
pager.typeDefs, // BookConnection, BookEdge, PageInfo typeDefs
scalarTypeDefs, // for DateTime
],
resolvers: [
resolvers,
scalarResolvers, // for DateTime
],
});
};
See fully working example in examples/sql-knex.
1.5.6
24 days ago
1.5.5
5 months ago
1.5.4
5 months ago
1.5.3
7 months ago
1.5.2
9 months ago
1.2.0
1 year ago
1.5.1
1 year ago
1.5.0
1 year ago
1.4.0
1 year ago
1.3.0
1 year ago
1.1.0
1 year ago
1.0.25
1 year ago
1.0.24
1 year ago
1.0.23
1 year ago
1.0.22
1 year ago
1.0.21
1 year ago
1.0.20
1 year ago
1.0.19
1 year ago
1.0.18
1 year ago
1.0.17
1 year ago
1.0.16
1 year ago
1.0.15
1 year ago
1.0.14
2 years ago
1.0.13
2 years ago
1.0.9
2 years ago
1.0.8
2 years ago
1.0.7
2 years ago
1.0.6
2 years ago
1.0.11
2 years ago
1.0.10
2 years ago
1.0.12
2 years ago
1.0.5
2 years ago
1.0.4
2 years ago
1.0.3
2 years ago
1.0.2
2 years ago
1.0.1
2 years ago
1.0.0
2 years ago
0.2.2
2 years ago
0.2.1
2 years ago
0.2.0
2 years ago