Skip to content

Commit d827fc5

Browse files
authored
refactor: due changes in [email protected] (#37)
BREAKING CHANGE: Using API from [email protected]
1 parent 926ceb1 commit d827fc5

18 files changed

+2124
-1878
lines changed

.markdownlint.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"line-length": false,
3+
"no-trailing-punctuation": {
4+
"punctuation": ",;"
5+
},
6+
"no-inline-html": false,
7+
"ol-prefix": false,
8+
"first-line-h1": false,
9+
"first-heading-h1": false
10+
}

.vscode/settings.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"prettier.eslintIntegration": true,
3+
"eslint.validate": [
4+
"javascript",
5+
],
6+
"javascript.validate.enable": false
7+
}

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)
99
[![Greenkeeper badge](https://badges.greenkeeper.io/graphql-compose/graphql-compose-connection.svg)](https://greenkeeper.io/)
1010

11-
This is a plugin for [graphql-compose](https://github.com/graphql-compose/graphql-compose) family, which adds to the TypeComposer `connection` resolver.
11+
This is a plugin for [graphql-compose](https://github.com/graphql-compose/graphql-compose) family, which adds to the ObjectTypeComposer `connection` resolver.
1212

1313
Live demo: [https://graphql-compose.herokuapp.com/](https://graphql-compose.herokuapp.com/)
1414

@@ -33,9 +33,9 @@ Example
3333
=======
3434
```js
3535
import composeWithConnection from 'graphql-compose-connection';
36-
import userTypeComposer from './user.js';
36+
import userTC from './user.js';
3737

38-
composeWithConnection(userTypeComposer, {
38+
composeWithConnection(userTC, {
3939
connectionResolverName: 'connection', // Default
4040
findResolverName: 'findMany',
4141
countResolverName: 'count',

package.json

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
"name": "graphql-compose-connection",
33
"version": "0.0.0-semantically-released",
44
"description": "Plugin for `graphql-compose` which provide a connection resolver for types.",
5+
"license": "MIT",
56
"files": [
67
"lib",
78
"mjs",
@@ -19,39 +20,38 @@
1920
"graphql-compose",
2021
"relay"
2122
],
22-
"license": "MIT",
2323
"bugs": {
2424
"url": "https://github.com/graphql-compose/graphql-compose-connection/issues"
2525
},
2626
"homepage": "https://github.com/graphql-compose/graphql-compose-connection",
2727
"peerDependencies": {
28-
"graphql-compose": ">=5.0.1 || >=4.0.0 || >=3.0.0"
28+
"graphql-compose": ">=6.0.0"
2929
},
3030
"devDependencies": {
31-
"@babel/cli": "^7.0.0",
32-
"@babel/core": "^7.0.0",
33-
"@babel/plugin-proposal-object-rest-spread": "^7.0.0",
34-
"@babel/plugin-transform-flow-strip-types": "^7.0.0",
35-
"@babel/plugin-transform-runtime": "^7.0.0",
36-
"@babel/preset-env": "^7.0.0",
31+
"@babel/cli": "^7.2.3",
32+
"@babel/core": "^7.3.4",
33+
"@babel/plugin-proposal-object-rest-spread": "^7.3.4",
34+
"@babel/plugin-transform-flow-strip-types": "^7.3.4",
35+
"@babel/plugin-transform-runtime": "^7.3.4",
36+
"@babel/preset-env": "^7.3.4",
3737
"@babel/preset-flow": "^7.0.0",
3838
"babel-core": "^7.0.0-bridge.0",
39-
"babel-eslint": "^9.0.0",
40-
"babel-jest": "^23.4.2",
39+
"babel-eslint": "^10.0.1",
40+
"babel-jest": "^24.5.0",
4141
"cz-conventional-changelog": "^2.1.0",
42-
"eslint": "^5.5.0",
42+
"eslint": "^5.15.2",
4343
"eslint-config-airbnb-base": "^13.1.0",
44-
"eslint-config-prettier": "^3.0.1",
45-
"eslint-plugin-flowtype": "^2.50.0",
46-
"eslint-plugin-import": "^2.14.0",
47-
"eslint-plugin-prettier": "^2.6.2",
48-
"flow-bin": "^0.80.0",
49-
"graphql": "14.0.0",
50-
"graphql-compose": "^5.0.1",
51-
"jest": "^23.5.0",
52-
"prettier": "^1.14.2",
53-
"rimraf": "^2.6.2",
54-
"semantic-release": "^15.9.12"
44+
"eslint-config-prettier": "^4.1.0",
45+
"eslint-plugin-flowtype": "^3.4.2",
46+
"eslint-plugin-import": "^2.16.0",
47+
"eslint-plugin-prettier": "^3.0.1",
48+
"flow-bin": "^0.95.1",
49+
"graphql": "14.1.1",
50+
"graphql-compose": "^6.0.1",
51+
"jest": "^24.5.0",
52+
"prettier": "^1.16.4",
53+
"rimraf": "^2.6.3",
54+
"semantic-release": "^15.13.3"
5555
},
5656
"config": {
5757
"commitizen": {
@@ -75,7 +75,7 @@
7575
"flow": "./node_modules/.bin/flow",
7676
"test": "npm run coverage && npm run lint && npm run flow",
7777
"link": "yarn build && yarn link graphql-compose && yarn link",
78-
"unlink": "yarn unlink graphql-compose && yarn add graphql-compose",
78+
"unlink": "rimraf node_modules && yarn install",
7979
"semantic-release": "semantic-release"
8080
}
8181
}

src/__mocks__/rootQueryTC.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
/* @flow */
2+
3+
import { schemaComposer } from 'graphql-compose';
4+
5+
export const rootQueryTC = schemaComposer.createObjectTC({
6+
name: 'RootQuery',
7+
fields: {},
8+
});

src/__mocks__/rootQueryTypeComposer.js

Lines changed: 0 additions & 10 deletions
This file was deleted.

src/__mocks__/userTypeComposer.js renamed to src/__mocks__/userTC.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/* @flow */
22
/* eslint-disable no-param-reassign */
33

4-
import { TypeComposer, Resolver } from 'graphql-compose';
4+
import { schemaComposer } from 'graphql-compose';
55
import {
66
GraphQLString,
77
GraphQLObjectType,
@@ -29,7 +29,7 @@ export const UserType = new GraphQLObjectType({
2929
},
3030
});
3131

32-
export const userTypeComposer = new TypeComposer(UserType);
32+
export const userTC = schemaComposer.createObjectTC(UserType);
3333

3434
export const userList = [
3535
{ id: 1, name: 'user01', age: 11, gender: 'm' },
@@ -119,7 +119,7 @@ function prepareFilterFromArgs(resolveParams = {}) {
119119
return filter;
120120
}
121121

122-
export const findManyResolver = new Resolver({
122+
export const findManyResolver = schemaComposer.createResolver({
123123
name: 'findMany',
124124
kind: 'query',
125125
type: UserType,
@@ -156,9 +156,9 @@ export const findManyResolver = new Resolver({
156156
return Promise.resolve(list);
157157
},
158158
});
159-
userTypeComposer.setResolver('findMany', findManyResolver);
159+
userTC.setResolver('findMany', findManyResolver);
160160

161-
export const countResolver = new Resolver({
161+
export const countResolver = schemaComposer.createResolver({
162162
name: 'count',
163163
kind: 'query',
164164
type: GraphQLInt,
@@ -169,7 +169,7 @@ export const countResolver = new Resolver({
169169
return Promise.resolve(filteredUserList(userList, prepareFilterFromArgs(resolveParams)).length);
170170
},
171171
});
172-
userTypeComposer.setResolver('count', countResolver);
172+
userTC.setResolver('count', countResolver);
173173

174174
export const sortOptions: ConnectionSortMapOpts = {
175175
ID_ASC: {

src/__tests__/composeWithConnection-test.js

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,40 @@
11
/* @flow */
22
/* eslint-disable no-param-reassign */
33

4-
import { TypeComposer } from 'graphql-compose';
4+
import { schemaComposer, ObjectTypeComposer } from 'graphql-compose';
55
import { GraphQLSchema, GraphQLList, GraphQLNonNull, graphql } from 'graphql-compose/lib/graphql';
66
import { composeWithConnection } from '../composeWithConnection';
7-
import { userTypeComposer, sortOptions } from '../__mocks__/userTypeComposer';
8-
import { rootQueryTypeComposer as rootQueryTC } from '../__mocks__/rootQueryTypeComposer';
7+
import { userTC, sortOptions } from '../__mocks__/userTC';
8+
import { rootQueryTC } from '../__mocks__/rootQueryTC';
99

1010
describe('composeWithRelay', () => {
11-
const userComposer = composeWithConnection(userTypeComposer, {
11+
const userComposer = composeWithConnection(userTC, {
1212
countResolverName: 'count',
1313
findResolverName: 'findMany',
1414
sort: sortOptions,
1515
});
1616

1717
describe('basic checks', () => {
18-
it('should return TypeComposer', () => {
19-
expect(userComposer).toBeInstanceOf(TypeComposer);
18+
it('should return ObjectTypeComposer', () => {
19+
expect(userComposer).toBeInstanceOf(ObjectTypeComposer);
2020
});
2121

22-
it('should throw error if first arg is not TypeComposer', () => {
22+
it('should throw error if first arg is not ObjectTypeComposer', () => {
2323
expect(() => {
2424
const wrongArgs: any = [123];
2525
composeWithConnection(...wrongArgs);
26-
}).toThrowError('should provide TypeComposer instance');
26+
}).toThrowError('should provide ObjectTypeComposer instance');
2727
});
2828

2929
it('should throw error if options are empty', () => {
3030
expect(() => {
31-
const wrongArgs: any = [userTypeComposer];
31+
const wrongArgs: any = [userTC];
3232
composeWithConnection(...wrongArgs);
3333
}).toThrowError('should provide non-empty options');
3434
});
3535

3636
it('should not change `connection` resolver if exists', () => {
37-
let myTC = TypeComposer.create('type Complex { a: String, b: Int }');
37+
let myTC = schemaComposer.createObjectTC('type Complex { a: String, b: Int }');
3838
myTC.addResolver({
3939
name: 'connection',
4040
resolve: () => 'mockData',
@@ -48,11 +48,11 @@ describe('composeWithRelay', () => {
4848
});
4949

5050
expect(myTC.getResolver('connection')).toBeTruthy();
51-
expect(myTC.getResolver('connection').resolve()).toBe('mockData');
51+
expect(myTC.getResolver('connection').resolve({})).toBe('mockData');
5252
});
5353

5454
it('should add resolver with user-specified name', () => {
55-
let myTC = TypeComposer.create('type CustomComplex { a: String, b: Int }');
55+
let myTC = schemaComposer.createObjectTC('type CustomComplex { a: String, b: Int }');
5656
myTC.addResolver({
5757
name: 'count',
5858
resolve: () => 1,
@@ -73,7 +73,7 @@ describe('composeWithRelay', () => {
7373
});
7474

7575
it('should add two connection resolvers', () => {
76-
let myTC = TypeComposer.create('type CustomComplex { a: String, b: Int }');
76+
let myTC = schemaComposer.createObjectTC('type CustomComplex { a: String, b: Int }');
7777
myTC.addResolver({
7878
name: 'count',
7979
resolve: () => 1,
@@ -102,7 +102,7 @@ describe('composeWithRelay', () => {
102102
describe('check `connection` resolver props', () => {
103103
const rsv = userComposer.getResolver('connection');
104104
const type: any = rsv.getType();
105-
const tc = new TypeComposer(type);
105+
const tc = schemaComposer.createObjectTC(type);
106106

107107
it('should exists', () => {
108108
expect(rsv).toBeTruthy();
@@ -118,7 +118,7 @@ describe('composeWithRelay', () => {
118118
});
119119

120120
it('should apply first sort ID_ASC by default', async () => {
121-
rootQueryTC.setField('userConnection', userTypeComposer.getResolver('connection'));
121+
rootQueryTC.setField('userConnection', userTC.getResolver('connection'));
122122
const schema = new GraphQLSchema({
123123
query: rootQueryTC.getType(),
124124
});
@@ -168,7 +168,7 @@ describe('composeWithRelay', () => {
168168
});
169169

170170
it('should able to change `sort` on AGE_ID_DESC', async () => {
171-
rootQueryTC.setField('userConnection', userTypeComposer.getResolver('connection'));
171+
rootQueryTC.setField('userConnection', userTC.getResolver('connection'));
172172
const schema = new GraphQLSchema({
173173
query: rootQueryTC.getType(),
174174
});
@@ -220,7 +220,7 @@ describe('composeWithRelay', () => {
220220

221221
describe('fragments fields projection of graphql-compose', () => {
222222
it('should return object', async () => {
223-
rootQueryTC.setField('userConnection', userTypeComposer.getResolver('connection'));
223+
rootQueryTC.setField('userConnection', userTC.getResolver('connection'));
224224
const schema = new GraphQLSchema({
225225
query: rootQueryTC.getType(),
226226
});
@@ -285,7 +285,7 @@ describe('composeWithRelay', () => {
285285

286286
rootQueryTC.setField(
287287
'userConnection',
288-
userTypeComposer.getResolver('connection').wrapResolve(next => rp => {
288+
userTC.getResolver('connection').wrapResolve(next => rp => {
289289
const result = next(rp);
290290
topResolveParams = rp;
291291
return result;
@@ -315,7 +315,7 @@ describe('composeWithRelay', () => {
315315

316316
rootQueryTC.setField(
317317
'userConnection',
318-
userTypeComposer.getResolver('connection').wrapResolve(next => rp => {
318+
userTC.getResolver('connection').wrapResolve(next => rp => {
319319
const result = next(rp);
320320
topResolveParams = rp;
321321
return result;

0 commit comments

Comments
 (0)