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;

src/resolvers/helpers/limit.js

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

3-
import type { ComposeFieldConfigArgumentMap } from 'graphql-compose';
3+
import type { ObjectTypeComposerArgumentConfigMapDefinition } from 'graphql-compose';
44
import type { ExtendedResolveParams } from '../index';
55

66
export type LimitHelperArgsOpts = {
@@ -10,7 +10,9 @@ export type LimitHelperArgsOpts = {
1010
// for merging, discriminators merge-able only
1111
export const getLimitHelperArgsOptsMap = () => ({ defaultValue: 'number' });
1212

13-
export const limitHelperArgs = (opts?: LimitHelperArgsOpts): ComposeFieldConfigArgumentMap<> => {
13+
export const limitHelperArgs = (
14+
opts?: LimitHelperArgsOpts
15+
): ObjectTypeComposerArgumentConfigMapDefinition<> => {
1416
return {
1517
limit: {
1618
type: 'Int',

src/resolvers/helpers/record.d.ts

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

33
export type RecordHelperArgsOpts = {
44
recordTypeName?: string;
@@ -17,4 +17,4 @@ export type RecordsHelperArgs<TSource> = { records: TSource[] };
1717
export function recordHelperArgs(
1818
tc: ObjectTypeComposer<any>,
1919
opts?: RecordHelperArgsOpts,
20-
): ComposeFieldConfigArgumentMap;
20+
): ObjectTypeComposerArgumentConfigMapDefinition;

src/resolvers/helpers/record.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import {
44
type ObjectTypeComposer,
5-
type ComposeFieldConfigArgumentMap,
5+
type ObjectTypeComposerArgumentConfigMapDefinition,
66
InputTypeComposer,
77
} from 'graphql-compose';
88

@@ -23,7 +23,7 @@ export const getRecordHelperArgsOptsMap = () => ({
2323
export const recordHelperArgs = (
2424
tc: ObjectTypeComposer<any, any>,
2525
opts?: RecordHelperArgsOpts
26-
): ComposeFieldConfigArgumentMap<> => {
26+
): ObjectTypeComposerArgumentConfigMapDefinition<> => {
2727
if (!tc || tc.constructor.name !== 'ObjectTypeComposer') {
2828
throw new Error('First arg for recordHelperArgs() should be instance of ObjectTypeComposer.');
2929
}
@@ -52,7 +52,7 @@ export const recordHelperArgs = (
5252

5353
return {
5454
record: {
55-
type: opts.isRequired ? recordITC.getTypeNonNull() : recordITC.getType(),
55+
type: opts.isRequired ? recordITC.getTypeNonNull() : recordITC,
5656
},
5757
};
5858
};

src/resolvers/helpers/skip.d.ts

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

44
export type SkipHelperArgs = number;
55

6-
export function skipHelperArgs(): ComposeFieldConfigArgumentMap;
6+
export function skipHelperArgs(): ObjectTypeComposerArgumentConfigMapDefinition;
77

88
export function skipHelper(resolveParams: ExtendedResolveParams): void;

src/resolvers/helpers/skip.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
/* @flow */
22

3-
import type { ComposeFieldConfigArgumentMap } from 'graphql-compose';
3+
import type { ObjectTypeComposerArgumentConfigMapDefinition } from 'graphql-compose';
44
import type { ExtendedResolveParams } from '../index';
55

6-
export const skipHelperArgs = (): ComposeFieldConfigArgumentMap<> => {
6+
export const skipHelperArgs = (): ObjectTypeComposerArgumentConfigMapDefinition<> => {
77
return {
88
skip: {
99
type: 'Int',

src/resolvers/helpers/sort.d.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {
2-
ComposeFieldConfigArgumentMap,
2+
ObjectTypeComposerArgumentConfigMapDefinition,
33
EnumTypeComposer,
44
SchemaComposer,
55
ObjectTypeComposer,
@@ -17,7 +17,7 @@ export function sortHelperArgs(
1717
typeComposer: ObjectTypeComposer<any>,
1818
model: Model<any>,
1919
opts?: SortHelperArgsOpts,
20-
): ComposeFieldConfigArgumentMap;
20+
): ObjectTypeComposerArgumentConfigMapDefinition;
2121

2222
export function sortHelper(resolveParams: ExtendedResolveParams): void;
2323

src/resolvers/helpers/sort.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
import type { MongooseModel } from 'mongoose';
55
import type {
6-
ComposeFieldConfigArgumentMap,
6+
ObjectTypeComposerArgumentConfigMapDefinition,
77
ObjectTypeComposer,
88
SchemaComposer,
99
EnumTypeComposer,
@@ -19,7 +19,7 @@ export const sortHelperArgs = (
1919
tc: ObjectTypeComposer<any, any>,
2020
model: MongooseModel,
2121
opts?: SortHelperArgsOpts
22-
): ComposeFieldConfigArgumentMap<> => {
22+
): ObjectTypeComposerArgumentConfigMapDefinition<> => {
2323
if (!tc || tc.constructor.name !== 'ObjectTypeComposer') {
2424
throw new Error('First arg for sortHelperArgs() should be instance of ObjectTypeComposer.');
2525
}

src/resolvers/index.d.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ResolveParams } from 'graphql-compose';
1+
import { ResolverResolveParams } from 'graphql-compose';
22
import { DocumentQuery } from 'mongoose';
33
import connection from './connection';
44
import count from './count';
@@ -36,7 +36,7 @@ export type GenResolverOpts = {
3636
limit?: LimitHelperArgsOpts;
3737
};
3838

39-
export type ExtendedResolveParams = ResolveParams<any, any> & {
39+
export type ExtendedResolveParams = ResolverResolveParams<any, any> & {
4040
query: DocumentQuery<any, any>;
4141
rawQuery: { [optName: string]: any };
4242
beforeQuery?: (query: any, rp: ExtendedResolveParams) => Promise<any>;

src/resolvers/index.js

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

3-
import type { ResolveParams } from 'graphql-compose';
3+
import type { ResolverResolveParams } from 'graphql-compose';
44
import type { MongooseQuery } from 'mongoose';
55
import connection from './connection';
66
import count from './count';
@@ -38,7 +38,7 @@ export type GenResolverOpts = {
3838
limit?: LimitHelperArgsOpts,
3939
};
4040

41-
export type ExtendedResolveParams = $Shape<ResolveParams<*, *>> & {
41+
export type ExtendedResolveParams = $Shape<ResolverResolveParams<any, any>> & {
4242
query: MongooseQuery<*, *>,
4343
rawQuery: { [optName: string]: any },
4444
beforeQuery?: (query: mixed, rp: ExtendedResolveParams) => Promise<*>,

src/resolvers/updateById.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ export default function updateById<TSource: MongooseDocument, TContext>(
3333
description: 'Updated document ID',
3434
},
3535
record: {
36-
type: tc.getType(),
36+
type: tc,
3737
description: 'Updated document',
3838
},
3939
});

0 commit comments

Comments
 (0)