@raynode/graphql-connector-sequelize
Advanced tools
Comparing version 0.8.2 to 0.8.3
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const graphql_connector_1 = require("@raynode/graphql-connector"); | ||
const inflection_1 = require("inflection"); | ||
const filter_parser_1 = require("./filter-parser"); | ||
@@ -41,4 +40,3 @@ const createPage = (offset, limit, page) => ({ | ||
// this needs to correctly submit nodes and page when done! | ||
const getter = `${inflection_1.capitalize(association.as)}`; | ||
const res = await instance[`get${getter}`](); | ||
const res = await instance[association.accessors.get](); | ||
return list | ||
@@ -52,4 +50,4 @@ ? { | ||
}); | ||
const findAll = async (include, where, order) => { | ||
const nodes = await model.findAll({ include, where, order }); | ||
const findAll = async (include, where, page, order) => { | ||
const nodes = await model.findAll({ include, where, order, limit: page.limit, offset: page.offset }); | ||
return { | ||
@@ -104,3 +102,3 @@ nodes, | ||
}, | ||
findMany: async (_, { order, where: { where = {}, include = [] } = {} }) => findAll(include, where, order), | ||
findMany: async (_, { order, page, where: { where = {}, include = [] } = {} }) => findAll(include, where, page, order), | ||
findOne: async (_, { order, where: { where = {}, include = [] } = {} }) => model.findOne({ include, where, order }), | ||
@@ -107,0 +105,0 @@ update: async (_, { data, where: { where, include } }) => { |
{ | ||
"name": "@raynode/graphql-connector-sequelize", | ||
"version": "0.8.2", | ||
"version": "0.8.3", | ||
"description": "", | ||
@@ -39,3 +39,3 @@ "main": "lib/index.js", | ||
"dependencies": { | ||
"@raynode/graphql-connector": "^0.8.2", | ||
"@raynode/graphql-connector": "^0.8.3", | ||
"@types/lodash": "^4.14.118", | ||
@@ -65,3 +65,3 @@ "@types/sequelize": "^4.27.30", | ||
}, | ||
"gitHead": "dc75438d12f5260771943555d19bdf023c347510" | ||
"gitHead": "51d0418015da83335c1980fb208f413a7c8e2f54" | ||
} |
@@ -282,7 +282,7 @@ import { createBaseSchemaGenerator, createSchema } from '@raynode/graphql-connector' | ||
if(errors) return console.log(errors) | ||
console.log(data.Links.nodes) | ||
expect(data.Links.nodes).toMatchSnapshot() | ||
}) | ||
it('should list all tags', async () => { | ||
const { data, errors } = await runQuery(`{ | ||
it('should find only one Tag', async () => { | ||
const { data } = await runQuery(`{ | ||
Tags(where: { tag: "Nice Pages" }) { nodes { | ||
@@ -292,5 +292,18 @@ tag | ||
}`) | ||
if(errors) return console.log(errors) | ||
console.log(data.Tags.nodes) | ||
expect(data.Tags.nodes).toMatchSnapshot() | ||
}) | ||
it('should handle pagination', async () => { | ||
const { data: { Users: { nodes: first2 } } } = await runQuery(`{ | ||
Users(page: { limit: 2, offset: 0 }, order: nickname_ASC) { nodes { | ||
id nickname name | ||
} } | ||
}`) | ||
const { data: { Users: { nodes: skip1 } } } = await runQuery(`{ | ||
Users(page: { limit: 2, offset: 1 }, order: nickname_ASC) { nodes { | ||
id nickname name | ||
} } | ||
}`) | ||
expect({first2, skip1}).toMatchSnapshot() | ||
}) | ||
}) |
@@ -1,2 +0,2 @@ | ||
import { AnyModel, createModelMapper, GeneratedModelMapper, Page } from '@raynode/graphql-connector' | ||
import { AnyModel, createModelMapper, GeneratedModelMapper, Page, PageInput } from '@raynode/graphql-connector' | ||
import { capitalize } from 'inflection' | ||
@@ -7,2 +7,8 @@ import * as Sequelize from 'sequelize' | ||
interface FindManyArgs { | ||
where: any | ||
order: any | ||
page: PageInput | ||
} | ||
// tslint:disable-next-line:no-duplicate-imports | ||
@@ -116,5 +122,3 @@ import { AssociationOptions, DefineAttributeColumnOptions } from 'sequelize' | ||
// this needs to correctly submit nodes and page when done! | ||
const getter = `${capitalize(association.as)}` | ||
const res = await instance[`get${getter}`]() | ||
const res = await instance[association.accessors.get]() | ||
return list | ||
@@ -129,4 +133,4 @@ ? { | ||
const findAll = async (include, where, order?) => { | ||
const nodes = await model.findAll({ include, where, order }) | ||
const findAll = async (include, where, page: PageInput, order?) => { | ||
const nodes = await model.findAll({ include, where, order, limit: page.limit, offset: page.offset }) | ||
return { | ||
@@ -188,3 +192,4 @@ nodes, | ||
}, | ||
findMany: async (_, { order, where: { where = {}, include = [] } = {} }) => findAll(include, where, order), | ||
findMany: async (_, { order, page, where: { where = {}, include = [] } = {} }: FindManyArgs) => | ||
findAll(include, where, page, order), | ||
findOne: async (_, { order, where: { where = {}, include = [] } = {} }) => model.findOne({ include, where, order }), | ||
@@ -191,0 +196,0 @@ update: async (_, { data, where: { where, include } }) => { |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
142576
2500