Skip to content

Commit 090500d

Browse files
committed
fix: flowtype definitions for proper work with graphql-compose@3.0.0
1 parent 7f8a970 commit 090500d

File tree

1 file changed

+24
-20
lines changed

1 file changed

+24
-20
lines changed

src/composeWithRelay.js

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -13,59 +13,63 @@ import { getNodeFieldConfig } from './nodeFieldConfig';
1313
export const TypeMapForRelayNode = {};
1414
export const nodeFieldConfig = getNodeFieldConfig(TypeMapForRelayNode);
1515

16-
export function composeWithRelay(typeComposer: TypeComposer): TypeComposer {
17-
if (!typeComposer || typeComposer.constructor.name !== 'TypeComposer') {
16+
export function composeWithRelay<T>(typeComposer: T): T {
17+
return (_composeWithRelay((typeComposer: any)): any);
18+
}
19+
20+
export function _composeWithRelay(tc: TypeComposer): TypeComposer {
21+
if (!tc || tc.constructor.name !== 'TypeComposer') {
1822
throw new Error('You should provide TypeComposer instance to composeWithRelay method');
1923
}
2024

21-
if (typeComposer.getTypeName() === 'Query' || typeComposer.getTypeName() === 'RootQuery') {
22-
typeComposer.setField('node', nodeFieldConfig);
23-
return typeComposer;
25+
if (tc.getTypeName() === 'Query' || tc.getTypeName() === 'RootQuery') {
26+
tc.setField('node', nodeFieldConfig);
27+
return tc;
2428
}
2529

26-
if (typeComposer.getTypeName() === 'Mutation' || typeComposer.getTypeName() === 'RootMutation') {
30+
if (tc.getTypeName() === 'Mutation' || tc.getTypeName() === 'RootMutation') {
2731
// just skip
28-
return typeComposer;
32+
return tc;
2933
}
3034

31-
if (!typeComposer.hasRecordIdFn()) {
35+
if (!tc.hasRecordIdFn()) {
3236
throw new Error(
33-
`TypeComposer(${typeComposer.getTypeName()}) should have recordIdFn. ` +
37+
`TypeComposer(${tc.getTypeName()}) should have recordIdFn. ` +
3438
'This function returns ID from provided object.'
3539
);
3640
}
3741

38-
const findById = typeComposer.getResolver('findById');
42+
const findById = tc.getResolver('findById');
3943
if (!findById) {
4044
throw new Error(
41-
`TypeComposer(${typeComposer.getTypeName()}) provided to composeWithRelay ` +
45+
`TypeComposer(${tc.getTypeName()}) provided to composeWithRelay ` +
4246
'should have findById resolver.'
4347
);
4448
}
45-
TypeMapForRelayNode[typeComposer.getTypeName()] = {
49+
TypeMapForRelayNode[tc.getTypeName()] = {
4650
resolver: findById,
47-
tc: typeComposer,
51+
tc,
4852
};
4953

50-
typeComposer.addFields({
54+
tc.addFields({
5155
id: {
5256
type: new GraphQLNonNull(GraphQLID),
5357
description: 'The globally unique ID among all types',
54-
resolve: source => toGlobalId(typeComposer.getTypeName(), typeComposer.getRecordId(source)),
58+
resolve: source => toGlobalId(tc.getTypeName(), tc.getRecordId(source)),
5559
},
5660
});
5761

58-
typeComposer.addInterface(NodeInterface);
62+
tc.addInterface(NodeInterface);
5963

60-
typeComposer.getResolvers().forEach((resolver, resolverName) => {
64+
tc.getResolvers().forEach((resolver, resolverName) => {
6165
if (resolver.kind === 'mutation') {
6266
const wrappedResolver = wrapMutationResolver(resolver, {
6367
resolverName,
64-
rootTypeName: typeComposer.getTypeName(),
68+
rootTypeName: tc.getTypeName(),
6569
});
66-
typeComposer.setResolver(resolverName, wrappedResolver);
70+
tc.setResolver(resolverName, wrappedResolver);
6771
}
6872
});
6973

70-
return typeComposer;
74+
return tc;
7175
}

0 commit comments

Comments
 (0)