Skip to content

Commit 349c043

Browse files
committed
refactor: migrate code to [email protected]
BREAKING CHANGE: required [email protected]
1 parent b4b43fb commit 349c043

21 files changed

+62
-57
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -407,7 +407,7 @@ This library provides some amount of ready resolvers for fetch and update data w
407407
The prototype of before save hook:
408408

409409
```js
410-
(doc: mixed, rp: ExtendedResolveParams) => Promise<*>,
410+
(doc: mixed, rp: ResolverResolveParams) => Promise<*>,
411411
```
412412

413413
The typical implementation may be like this:

src/composeWithMongoose.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ export function composeWithMongoose<TSource, TContext>(
123123
const name: string = (opts && opts.name) || m.modelName;
124124

125125
const sc = opts.schemaComposer || globalSchemaComposer;
126-
sc.set('MongoID', MongoID);
126+
sc.add(MongoID);
127127
const tc = convertModelToGraphQL((m: any), name, sc);
128128

129129
if (opts.description) {
@@ -185,7 +185,7 @@ export function prepareInputFields(
185185
inputTypeComposer.removeField(inputFieldsOpts.remove);
186186
}
187187
if (inputFieldsOpts.required) {
188-
inputTypeComposer.makeRequired(inputFieldsOpts.required);
188+
inputTypeComposer.makeFieldNonNull(inputFieldsOpts.required);
189189
}
190190
}
191191

src/fieldsConverter.d.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import {
22
EnumTypeComposer,
33
SchemaComposer,
44
ObjectTypeComposer,
5-
ComposeOutputType,
5+
ComposeOutputTypeDefinition,
66
} from 'graphql-compose';
77
import { GraphQLScalarType } from 'graphql-compose/lib/graphql';
88
import { Model, Schema } from 'mongoose';
@@ -51,7 +51,7 @@ export function convertFieldToGraphQL(
5151
field: MongooseFieldT,
5252
prefix: string | undefined,
5353
schemaComposer: SchemaComposer<any>,
54-
): ComposeOutputType<any, any>;
54+
): ComposeOutputTypeDefinition<any>;
5555

5656
export function deriveComplexType(
5757
field: MongooseFieldT,
@@ -63,7 +63,7 @@ export function arrayToGraphQL(
6363
field: MongooseFieldT,
6464
prefix: string | undefined,
6565
schemaComposer: SchemaComposer<any>,
66-
): ComposeOutputType<any, any>;
66+
): ComposeOutputTypeDefinition<any>;
6767

6868
export function embeddedToGraphQL(
6969
field: MongooseFieldT,

src/fieldsConverter.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import type {
88
SchemaComposer,
99
ObjectTypeComposer,
1010
EnumTypeComposer,
11-
ComposeOutputType,
11+
ComposeOutputTypeDefinition,
1212
} from 'graphql-compose';
1313
import { upperFirst } from 'graphql-compose';
1414
import type { GraphQLScalarType } from 'graphql-compose/lib/graphql';
@@ -190,9 +190,9 @@ export function convertFieldToGraphQL(
190190
field: MongooseFieldT,
191191
prefix?: string = '',
192192
schemaComposer: SchemaComposer<any>
193-
): ComposeOutputType<any, any> {
193+
): ComposeOutputTypeDefinition<any> {
194194
if (!schemaComposer.has('MongoID')) {
195-
schemaComposer.set('MongoID', GraphQLMongoID);
195+
schemaComposer.add(GraphQLMongoID);
196196
}
197197

198198
const complexType = deriveComplexType(field);
@@ -276,7 +276,7 @@ export function arrayToGraphQL(
276276
field: MongooseFieldT,
277277
prefix?: string = '',
278278
schemaComposer: SchemaComposer<any>
279-
): ComposeOutputType<any, any> {
279+
): ComposeOutputTypeDefinition<any> {
280280
if (!field || !field.caster) {
281281
throw new Error(
282282
'You provide incorrect mongoose field to `arrayToGraphQL()`. ' +
@@ -286,7 +286,7 @@ export function arrayToGraphQL(
286286

287287
const unwrappedField = { ...field.caster };
288288

289-
const outputType = convertFieldToGraphQL(unwrappedField, prefix, schemaComposer);
289+
const outputType: any = convertFieldToGraphQL(unwrappedField, prefix, schemaComposer);
290290
return [outputType];
291291
}
292292

src/resolvers/createMany.js

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
/* @flow */
22

33
import type { ObjectTypeComposer, Resolver } from 'graphql-compose';
4-
import { graphql } from 'graphql-compose';
54
import type { MongooseModel, MongooseDocument } from 'mongoose';
65
import { recordHelperArgs } from './helpers';
76
import type { ExtendedResolveParams, GenResolverOpts } from './index';
@@ -56,7 +55,7 @@ export default function createMany<TSource: MongooseDocument, TContext>(
5655
description: 'Created document ID',
5756
},
5857
records: {
59-
type: new graphql.GraphQLNonNull(tc.getTypePlural()),
58+
type: tc.getTypePlural().getTypeNonNull(),
6059
description: 'Created documents',
6160
},
6261
createCount: {
@@ -73,17 +72,15 @@ export default function createMany<TSource: MongooseDocument, TContext>(
7372
type: outputType,
7473
args: {
7574
records: {
76-
type: new graphql.GraphQLNonNull(
77-
new graphql.GraphQLList(
78-
(recordHelperArgs(tc, {
79-
recordTypeName: `CreateMany${tc.getTypeName()}Input`,
80-
removeFields: ['id', '_id'],
81-
isRequired: true,
82-
requiredFields,
83-
...(opts && opts.records),
84-
}).record: any).type
85-
)
86-
),
75+
type: (recordHelperArgs(tc, {
76+
recordTypeName: `CreateMany${tc.getTypeName()}Input`,
77+
removeFields: ['id', '_id'],
78+
isRequired: true,
79+
requiredFields,
80+
...(opts && opts.records),
81+
}).record: any).type
82+
.getTypePlural()
83+
.getTypeNonNull(),
8784
},
8885
},
8986
resolve: async (resolveParams: ExtendedResolveParams) => {

src/resolvers/findById.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ export default function findById<TSource: MongooseDocument, TContext>(
1919
}
2020

2121
return tc.schemaComposer.createResolver({
22-
type: tc.getType(),
22+
type: tc,
2323
name: 'findById',
2424
kind: 'query',
2525
args: {

src/resolvers/findOne.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export default function findOne<TSource: MongooseDocument, TContext>(
2828
}
2929

3030
return tc.schemaComposer.createResolver({
31-
type: tc.getType(),
31+
type: tc,
3232
name: 'findOne',
3333
kind: 'query',
3434
args: {

src/resolvers/helpers/filter.d.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
import { ComposeFieldConfigArgumentMap, ObjectTypeComposer } from 'graphql-compose';
1+
import {
2+
ObjectTypeComposerArgumentConfigMapDefinition,
3+
ObjectTypeComposer,
4+
} from 'graphql-compose';
25
import { Model } from 'mongoose';
36
import { MongoId } from '../../types/mongoid';
47
import { ExtendedResolveParams } from '../index';
@@ -29,6 +32,6 @@ export function filterHelperArgs(
2932
typeComposer: ObjectTypeComposer<any>,
3033
model: Model<any>,
3134
opts?: FilterHelperArgsOpts,
32-
): ComposeFieldConfigArgumentMap;
35+
): ObjectTypeComposerArgumentConfigMapDefinition;
3336

3437
export function filterHelper(resolveParams: ExtendedResolveParams): void;

src/resolvers/helpers/filter.js

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
/* @flow */
22
/* eslint-disable no-use-before-define */
33

4-
import type { ObjectTypeComposer, ComposeFieldConfigArgumentMap } from 'graphql-compose';
4+
import {
5+
ObjectTypeComposer,
6+
type ObjectTypeComposerArgumentConfigMapDefinition,
7+
} from 'graphql-compose';
58
import type { MongooseModel } from 'mongoose';
69
import GraphQLMongoID from '../../types/mongoid';
710
import { isObject, toMongoFilterDottedObject, getIndexedFieldNamesForGraphQL } from '../../utils';
@@ -35,8 +38,8 @@ export const filterHelperArgs = (
3538
typeComposer: ObjectTypeComposer<any, any>,
3639
model: MongooseModel,
3740
opts?: FilterHelperArgsOpts
38-
): ComposeFieldConfigArgumentMap<> => {
39-
if (!typeComposer || typeComposer.constructor.name !== 'ObjectTypeComposer') {
41+
): ObjectTypeComposerArgumentConfigMapDefinition<> => {
42+
if (!(typeComposer instanceof ObjectTypeComposer)) {
4043
throw new Error('First arg for filterHelperArgs() should be instance of ObjectTypeComposer.');
4144
}
4245

@@ -69,7 +72,7 @@ export const filterHelperArgs = (
6972
const filterTypeName: string = opts.filterTypeName;
7073
const itc = typeComposer.getInputTypeComposer().clone(filterTypeName);
7174

72-
itc.makeOptional('_id');
75+
itc.makeFieldNullable('_id');
7376

7477
itc.addFields({
7578
_ids: [GraphQLMongoID],
@@ -78,7 +81,7 @@ export const filterHelperArgs = (
7881
itc.removeField(removeFields);
7982

8083
if (opts.requiredFields) {
81-
itc.makeRequired(opts.requiredFields);
84+
itc.makeFieldNonNull(opts.requiredFields);
8285
}
8386

8487
if (itc.getFieldNames().length === 0) {
@@ -89,7 +92,7 @@ export const filterHelperArgs = (
8992

9093
return {
9194
filter: {
92-
type: opts.isRequired ? itc.getTypeNonNull() : itc.getType(),
95+
type: opts.isRequired ? itc.getTypeNonNull() : itc,
9396
description: opts.onlyIndexed ? 'Filter only by indexed fields' : 'Filter by fields',
9497
},
9598
};

src/resolvers/helpers/limit.d.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ComposeFieldConfigArgumentMap } from 'graphql-compose';
1+
import { ObjectTypeComposerArgumentConfigMapDefinition } from 'graphql-compose';
22
import { ExtendedResolveParams } from '../index';
33

44
export type LimitHelperArgsOpts = {
@@ -13,6 +13,6 @@ export function getLimitHelperArgsOptsMap(): Partial<
1313

1414
export function limitHelperArgs(
1515
opts?: LimitHelperArgsOpts,
16-
): ComposeFieldConfigArgumentMap;
16+
): ObjectTypeComposerArgumentConfigMapDefinition;
1717

1818
export function limitHelper(resolveParams: ExtendedResolveParams): void;

0 commit comments

Comments
 (0)