Skip to content

Commit e5043aa

Browse files
committed
fix(Dependencies): Fix due changes in graphql-compose@1.0.0
1 parent b74e5cb commit e5043aa

15 files changed

+3694
-168
lines changed

package.json

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@
2323
},
2424
"homepage": "https://github.com/nodkz/graphql-compose-relay",
2525
"peerDependencies": {
26-
"graphql": ">=0.5.0 || >=0.6.0 || >=0.7.0",
27-
"graphql-compose": ">=0.0.21 || >=1.0.0"
26+
"graphql": ">=0.7.1 || >=0.8.0",
27+
"graphql-compose": ">=1.0.0"
2828
},
2929
"devDependencies": {
3030
"babel-cli": "6.14.0",
@@ -54,18 +54,6 @@
5454
"sane": "1.4.1",
5555
"semantic-release": "^4.3.5"
5656
},
57-
"scripts": {
58-
"build": "npm run build-cjs && npm run build-flow && npm run build-es",
59-
"build-cjs": "rimraf lib && babel src --ignore __tests__,__mocks__ -d lib",
60-
"build-es": "rimraf es && BABEL_ENV=es babel src --ignore __tests__,__mocks__ -d es",
61-
"build-flow": "find ./src -name '*.js' -not -path '*/__*' | while read filepath; do cp $filepath `echo $filepath | sed 's/\\/src\\//\\/lib\\//g'`.flow; done",
62-
"coverage": "nyc npm run test",
63-
"lint": "eslint src test *.js",
64-
"test": "babel-node ./node_modules/.bin/_mocha --compilers js:babel-core/register --reporter dot --require ./resources/mocha-bootload src/**/__tests__/**/*-test.js",
65-
"watch": "babel-node ./resources/watch.js",
66-
"link": "npm link graphql && npm link graphql-compose && npm link",
67-
"semantic-release": "semantic-release pre && npm publish && semantic-release post"
68-
},
6957
"dependencies": {
7058
"babel-runtime": "6.11.6"
7159
},
@@ -85,5 +73,17 @@
8573
"lcov",
8674
"text"
8775
]
76+
},
77+
"scripts": {
78+
"build": "npm run build-cjs && npm run build-flow && npm run build-es",
79+
"build-cjs": "rimraf lib && babel src --ignore __tests__,__mocks__ -d lib",
80+
"build-es": "rimraf es && BABEL_ENV=es babel src --ignore __tests__,__mocks__ -d es",
81+
"build-flow": "find ./src -name '*.js' -not -path '*/__*' | while read filepath; do cp $filepath `echo $filepath | sed 's/\\/src\\//\\/lib\\//g'`.flow; done",
82+
"coverage": "nyc npm run test",
83+
"lint": "eslint src test *.js",
84+
"test": "babel-node ./node_modules/.bin/_mocha --compilers js:babel-core/register --reporter dot --require ./resources/mocha-bootload src/**/__tests__/**/*-test.js",
85+
"watch": "babel-node ./resources/watch.js",
86+
"link": "npm link graphql && npm link graphql-compose && npm link",
87+
"semantic-release": "semantic-release pre && npm publish && semantic-release post"
8888
}
8989
}

resources/watch.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ function runTests(filepaths) {
128128
['src/**/__tests__/**/*-test.js']
129129
);
130130
// console.log(cmd);
131-
return exec('babel-node', cmd).catch(() => false);
131+
return exec('node', cmd).catch(() => false);
132132
}
133133

134134
function lintFiles(filepaths) {

src/__mocks__/rootMutationTypeComposer.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import {
44
import { TypeComposer } from 'graphql-compose';
55

66
const RootMutation = new GraphQLObjectType({
7-
name: 'RootMutation',
7+
name: 'Mutation',
88
fields: {
99
},
1010
});

src/__mocks__/rootQueryTypeComposer.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import {
44
import { TypeComposer } from 'graphql-compose';
55

66
const RootQuery = new GraphQLObjectType({
7-
name: 'RootQuery',
7+
name: 'Query',
88
fields: {
99
},
1010
});

src/__mocks__/userTypeComposer.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ export const UserType = new GraphQLObjectType({
2525
export const userTypeComposer = new TypeComposer(UserType);
2626
userTypeComposer.setRecordIdFn(obj => obj.id);
2727

28-
export const findByIdResolver = new Resolver(userTypeComposer, {
28+
export const findByIdResolver = new Resolver({
2929
name: 'findById',
3030
kind: 'query',
3131
outputType: UserType,
@@ -54,8 +54,9 @@ export const findByIdResolver = new Resolver(userTypeComposer, {
5454
return Promise.resolve(null);
5555
},
5656
});
57+
userTypeComposer.setResolver('findById', findByIdResolver);
5758

58-
export const createOneResolver = new Resolver(userTypeComposer, {
59+
export const createOneResolver = new Resolver({
5960
name: 'createOne',
6061
kind: 'mutation',
6162
outputType: new GraphQLObjectType({
@@ -86,8 +87,9 @@ export const createOneResolver = new Resolver(userTypeComposer, {
8687
});
8788
},
8889
});
90+
userTypeComposer.setResolver('createOne', createOneResolver);
8991

90-
export const manyArgsWithInputResolver = new Resolver(userTypeComposer, {
92+
export const manyArgsWithInputResolver = new Resolver({
9193
name: 'manyArgsWithInput',
9294
kind: 'mutation',
9395
outputType: new GraphQLObjectType({
@@ -126,8 +128,9 @@ export const manyArgsWithInputResolver = new Resolver(userTypeComposer, {
126128
});
127129
},
128130
});
131+
userTypeComposer.setResolver('manyArgsWithInput', manyArgsWithInputResolver);
129132

130-
export const manyArgsWithoutInputResolver = new Resolver(userTypeComposer, {
133+
export const manyArgsWithoutInputResolver = new Resolver({
131134
name: 'manyArgsWithoutInput',
132135
kind: 'mutation',
133136
outputType: new GraphQLObjectType({
@@ -155,3 +158,4 @@ export const manyArgsWithoutInputResolver = new Resolver(userTypeComposer, {
155158
});
156159
},
157160
});
161+
userTypeComposer.setResolver('manyArgsWithoutInput', manyArgsWithoutInputResolver);

src/__tests__/composeWithRelay-test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ describe('composeWithRelay', () => {
2323
expect(userComposer).instanceof(TypeComposer);
2424
});
2525

26-
it('should throw error if get not TypeComposer', () => {
26+
it('should throw error if got a not TypeComposer', () => {
2727
expect(() => composeWithRelay(123)).to.throw('should provide TypeComposer instance');
2828
});
2929

src/__tests__/nodeFieldConfig-test.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,17 @@ import {
33
GraphQLInterfaceType,
44
GraphQLNonNull,
55
} from 'graphql';
6-
import { findByIdResolver } from '../__mocks__/userTypeComposer';
6+
import { findByIdResolver, userTypeComposer } from '../__mocks__/userTypeComposer';
77
import { toGlobalId } from '../globalId';
88
import { getNodeFieldConfig } from '../nodeFieldConfig';
99

1010

1111
describe('nodeFieldConfig', () => {
1212
const typeToFindByIdMap = {
13-
User: findByIdResolver,
13+
User: {
14+
resolver: findByIdResolver,
15+
tc: userTypeComposer,
16+
}
1417
};
1518
const config = getNodeFieldConfig(typeToFindByIdMap);
1619

src/__tests__/mutationMiddleware-test.js renamed to src/__tests__/wrapMutationResolver.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { userTypeComposer } from '../__mocks__/userTypeComposer';
1111
import { toGlobalId } from '../globalId';
1212

1313

14-
describe('MutationMiddleware', () => {
14+
describe('wrapMutationResolver', () => {
1515
composeWithRelay(userTypeComposer);
1616
const fieldConfig = userTypeComposer.getResolver('createOne').getFieldConfig();
1717
const fieldConfigManyArgsWithInput

src/composeWithRelay.js

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@
44
import { GraphQLID, GraphQLNonNull } from 'graphql';
55
import { TypeComposer } from 'graphql-compose';
66
import NodeInterface from './nodeInterface';
7-
import MutationMiddleware from './mutationMiddleware';
7+
import wrapMutationResolver from './wrapMutationResolver';
88
import { toGlobalId } from './globalId';
99
import { getNodeFieldConfig } from './nodeFieldConfig';
1010

1111
// all wrapped typeComposers with Relay, stored in this variable
1212
// for futher type resolving via NodeInterface.resolveType method
13-
export const typeComposerMap = {};
14-
export const nodeFieldConfig = getNodeFieldConfig(typeComposerMap);
13+
export const typeMapForNode = {};
14+
export const nodeFieldConfig = getNodeFieldConfig(typeMapForNode);
1515

1616
export function composeWithRelay(
1717
typeComposer: TypeComposer
@@ -20,12 +20,12 @@ export function composeWithRelay(
2020
throw new Error('You should provide TypeComposer instance to composeWithRelay method');
2121
}
2222

23-
if (typeComposer.getTypeName() === 'RootQuery') {
23+
if (typeComposer.getTypeName() === 'Query' || typeComposer.getTypeName() === 'RootQuery') {
2424
typeComposer.addField('node', nodeFieldConfig);
2525
return typeComposer;
2626
}
2727

28-
if (typeComposer.getTypeName() === 'RootMutation') {
28+
if (typeComposer.getTypeName() === 'Mutation' || typeComposer.getTypeName() === 'RootMutation') {
2929
// just skip
3030
return typeComposer;
3131
}
@@ -40,7 +40,10 @@ export function composeWithRelay(
4040
throw new Error(`TypeComposer(${typeComposer.getTypeName()}) provided to composeWithRelay `
4141
+ 'should have findById resolver.');
4242
}
43-
typeComposerMap[typeComposer.getTypeName()] = findById;
43+
typeMapForNode[typeComposer.getTypeName()] = {
44+
resolver: findById,
45+
tc: typeComposer,
46+
};
4447

4548
typeComposer.addFields({
4649
id: {
@@ -55,9 +58,13 @@ export function composeWithRelay(
5558

5659
typeComposer.addInterface(NodeInterface);
5760

58-
typeComposer.getResolvers().forEach(resolver => {
61+
typeComposer.getResolvers().forEach((resolver, resolverName) => {
5962
if (resolver.kind === 'mutation') {
60-
resolver.addMiddleware(new MutationMiddleware(typeComposer, resolver));
63+
const wrappedResolver = wrapMutationResolver(resolver, {
64+
resolverName,
65+
rootTypeName: typeComposer.getTypeName(),
66+
});
67+
typeComposer.setResolver(resolverName, wrappedResolver);
6168
}
6269
});
6370

src/definition.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,11 @@ import type {
1919

2020

2121
export type ObjectMap = { [optName: string]: mixed };
22+
export type WrapMutationResolverOpts = {
23+
resolverName: string,
24+
rootTypeName: string,
25+
[optName: string]: mixed,
26+
};
2227

2328
export type ResolverMWArgsFn = _ResolverMWArgsFn;
2429
export type ResolverMWArgs = _ResolverMWArgs;
@@ -34,7 +39,7 @@ export type GraphQLResolveInfo = _GraphQLResolveInfo;
3439
export type Resolver = _Resolver;
3540
export type ResolveParams = _ResolveParams;
3641
export type TypeComposer = _TypeComposer;
37-
export type TypeFindByIdMap = {[typeName: string]: Resolver};
42+
export type TypeMapForNode = {[typeName: string]: { resolver: Resolver, tc: TypeComposer } };
3843

3944

4045
// INTERNAL TYPES

0 commit comments

Comments
 (0)