Skip to content

Commit e4b916b

Browse files
committed
fix: allow to pass IntefaceTC to resolver generators
1 parent fa9d5f4 commit e4b916b

23 files changed

+72
-65
lines changed

package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,15 @@
2525
"homepage": "https://github.com/graphql-compose/graphql-compose-mongoose",
2626
"dependencies": {
2727
"dataloader": "^2.0.0",
28-
"graphql-compose-connection": "8.2.0",
29-
"graphql-compose-pagination": "8.2.0"
28+
"graphql-compose-connection": "8.2.1",
29+
"graphql-compose-pagination": "8.2.1"
3030
},
3131
"peerDependencies": {
3232
"graphql-compose": "^7.21.4 || ^8.0.0 || ^9.0.0",
3333
"mongoose": "^5.0.0 || ^4.4.0"
3434
},
3535
"devDependencies": {
36-
"@types/jest": "26.0.23",
36+
"@types/jest": "26.0.24",
3737
"@typescript-eslint/eslint-plugin": "4.28.2",
3838
"@typescript-eslint/parser": "4.28.2",
3939
"eslint": "7.30.0",
@@ -44,7 +44,7 @@
4444
"graphql": "15.5.1",
4545
"graphql-compose": "9.0.1",
4646
"jest": "27.0.6",
47-
"mongodb-memory-server": "7.1.0",
47+
"mongodb-memory-server": "7.2.0",
4848
"mongoose": "5.13.2",
4949
"prettier": "2.3.2",
5050
"request": "2.88.2",

src/resolvers/connection.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {
55
ConnectionSortMapOpts as _ConnectionSortMapOpts,
66
ConnectionTArgs,
77
} from 'graphql-compose-connection';
8-
import type { Resolver, ObjectTypeComposer } from 'graphql-compose';
8+
import type { Resolver, ObjectTypeComposer, InterfaceTypeComposer } from 'graphql-compose';
99
import { CountResolverOpts, count } from './count';
1010
import { FindManyResolverOpts, findMany } from './findMany';
1111
import { getUniqueIndexes, extendByReversedIndexes, IndexT } from '../utils/getIndexesFromModel';
@@ -30,7 +30,7 @@ export type ConnectionResolverOpts<TContext = any> = Omit<
3030

3131
export function connection<TSource = any, TContext = any, TDoc extends Document = any>(
3232
model: Model<TDoc>,
33-
tc: ObjectTypeComposer<TDoc, TContext>,
33+
tc: ObjectTypeComposer<TDoc, TContext> | InterfaceTypeComposer<TDoc, TContext>,
3434
opts?: ConnectionResolverOpts<TContext>
3535
): Resolver<TSource, TContext, ConnectionTArgs, TDoc> {
3636
const uniqueIndexes = extendByReversedIndexes(getUniqueIndexes(model), {

src/resolvers/count.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { Resolver, ObjectTypeComposer } from 'graphql-compose';
1+
import type { Resolver, ObjectTypeComposer, InterfaceTypeComposer } from 'graphql-compose';
22
import type { Model, Document } from 'mongoose';
33
import {
44
filterHelper,
@@ -22,7 +22,7 @@ type TArgs = {
2222

2323
export function count<TSource = any, TContext = any, TDoc extends Document = any>(
2424
model: Model<TDoc>,
25-
tc: ObjectTypeComposer<TDoc, TContext>,
25+
tc: ObjectTypeComposer<TDoc, TContext> | InterfaceTypeComposer<TDoc, TContext>,
2626
opts?: CountResolverOpts
2727
): Resolver<TSource, TContext, TArgs, TDoc> {
2828
if (!model || !model.modelName || !model.schema) {

src/resolvers/createMany.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ObjectTypeComposer, Resolver } from 'graphql-compose';
1+
import { ObjectTypeComposer, InterfaceTypeComposer, Resolver } from 'graphql-compose';
22
import type { Model, Document } from 'mongoose';
33
import { recordHelperArgs, RecordHelperArgsOpts } from './helpers';
44
import { addErrorCatcherField } from './helpers/errorCatcher';
@@ -22,7 +22,7 @@ type TArgs = {
2222

2323
export function createMany<TSource = any, TContext = any, TDoc extends Document = any>(
2424
model: Model<TDoc>,
25-
tc: ObjectTypeComposer<TDoc, TContext>,
25+
tc: ObjectTypeComposer<TDoc, TContext> | InterfaceTypeComposer<TDoc, TContext>,
2626
opts?: CreateManyResolverOpts
2727
): Resolver<TSource, TContext, TArgs, TDoc> {
2828
if (!model || !model.modelName || !model.schema) {

src/resolvers/createOne.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Resolver, ObjectTypeComposer } from 'graphql-compose';
1+
import { Resolver, ObjectTypeComposer, InterfaceTypeComposer } from 'graphql-compose';
22
import type { Model, Document } from 'mongoose';
33
import { recordHelperArgs, RecordHelperArgsOpts } from './helpers';
44
import type { ExtendedResolveParams } from './index';
@@ -23,7 +23,7 @@ type TArgs = {
2323

2424
export function createOne<TSource = any, TContext = any, TDoc extends Document = any>(
2525
model: Model<TDoc>,
26-
tc: ObjectTypeComposer<TDoc, TContext>,
26+
tc: ObjectTypeComposer<TDoc, TContext> | InterfaceTypeComposer<TDoc, TContext>,
2727
opts?: CreateOneResolverOpts
2828
): Resolver<TSource, TContext, TArgs, TDoc> {
2929
if (!model || !model.modelName || !model.schema) {

src/resolvers/dataLoader.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { toInputType } from 'graphql-compose';
2-
import type { Resolver, ObjectTypeComposer } from 'graphql-compose';
2+
import type { Resolver, ObjectTypeComposer, InterfaceTypeComposer } from 'graphql-compose';
33
import type { Model, Document } from 'mongoose';
44
import {
55
projectionHelper,
@@ -33,7 +33,7 @@ type TArgs = {
3333

3434
export function dataLoader<TSource = any, TContext = any, TDoc extends Document = any>(
3535
model: Model<TDoc>,
36-
tc: ObjectTypeComposer<TDoc, TContext>,
36+
tc: ObjectTypeComposer<TDoc, TContext> | InterfaceTypeComposer<TDoc, TContext>,
3737
opts?: DataLoaderResolverOpts
3838
): Resolver<TSource, TContext, TArgs, TDoc> {
3939
if (!model || !model.modelName || !model.schema) {

src/resolvers/dataLoaderMany.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { toInputType } from 'graphql-compose';
2-
import type { Resolver, ObjectTypeComposer } from 'graphql-compose';
2+
import type { Resolver, ObjectTypeComposer, InterfaceTypeComposer } from 'graphql-compose';
33
import type { Model, Document } from 'mongoose';
44
import {
55
projectionHelper,
@@ -33,7 +33,7 @@ type TArgs = {
3333

3434
export function dataLoaderMany<TSource = any, TContext = any, TDoc extends Document = any>(
3535
model: Model<TDoc>,
36-
tc: ObjectTypeComposer<TDoc, TContext>,
36+
tc: ObjectTypeComposer<TDoc, TContext> | InterfaceTypeComposer<TDoc, TContext>,
3737
opts?: DataLoaderManyResolverOpts
3838
): Resolver<TSource, TContext, TArgs, TDoc> {
3939
if (!model || !model.modelName || !model.schema) {

src/resolvers/findById.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { toInputType } from 'graphql-compose';
2-
import type { Resolver, ObjectTypeComposer } from 'graphql-compose';
2+
import type { Resolver, ObjectTypeComposer, InterfaceTypeComposer } from 'graphql-compose';
33
import type { Model, Document } from 'mongoose';
44
import {
55
projectionHelper,
@@ -32,7 +32,7 @@ type TArgs = {
3232

3333
export function findById<TSource = any, TContext = any, TDoc extends Document = any>(
3434
model: Model<TDoc>,
35-
tc: ObjectTypeComposer<TDoc, TContext>,
35+
tc: ObjectTypeComposer<TDoc, TContext> | InterfaceTypeComposer<TDoc, TContext>,
3636
opts?: FindByIdResolverOpts
3737
): Resolver<TSource, TContext, TArgs, TDoc> {
3838
if (!model || !model.modelName || !model.schema) {

src/resolvers/findByIds.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { toInputType } from 'graphql-compose';
2-
import type { Resolver, ObjectTypeComposer } from 'graphql-compose';
2+
import type { Resolver, ObjectTypeComposer, InterfaceTypeComposer } from 'graphql-compose';
33
import type { Model, Document } from 'mongoose';
44
import {
55
limitHelper,
@@ -41,7 +41,7 @@ type TArgs = {
4141

4242
export function findByIds<TSource = any, TContext = any, TDoc extends Document = any>(
4343
model: Model<TDoc>,
44-
tc: ObjectTypeComposer<TDoc, TContext>,
44+
tc: ObjectTypeComposer<TDoc, TContext> | InterfaceTypeComposer<TDoc, TContext>,
4545
opts?: FindByIdsResolverOpts
4646
): Resolver<TSource, TContext, TArgs, TDoc> {
4747
if (!model || !model.modelName || !model.schema) {

src/resolvers/findMany.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { Resolver, ObjectTypeComposer } from 'graphql-compose';
1+
import type { Resolver, ObjectTypeComposer, InterfaceTypeComposer } from 'graphql-compose';
22
import type { Model, Document } from 'mongoose';
33
import {
44
limitHelper,
@@ -51,7 +51,7 @@ type TArgs = {
5151

5252
export function findMany<TSource = any, TContext = any, TDoc extends Document = any>(
5353
model: Model<TDoc>,
54-
tc: ObjectTypeComposer<TDoc, TContext>,
54+
tc: ObjectTypeComposer<TDoc, TContext> | InterfaceTypeComposer<TDoc, TContext>,
5555
opts?: FindManyResolverOpts
5656
): Resolver<TSource, TContext, TArgs, TDoc> {
5757
if (!model || !model.modelName || !model.schema) {

src/resolvers/findOne.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { Resolver, ObjectTypeComposer } from 'graphql-compose';
1+
import type { Resolver, ObjectTypeComposer, InterfaceTypeComposer } from 'graphql-compose';
22
import type { Model, Document } from 'mongoose';
33
import {
44
skipHelper,
@@ -46,7 +46,7 @@ type TArgs = {
4646

4747
export function findOne<TSource = any, TContext = any, TDoc extends Document = any>(
4848
model: Model<TDoc>,
49-
tc: ObjectTypeComposer<TDoc, TContext>,
49+
tc: ObjectTypeComposer<TDoc, TContext> | InterfaceTypeComposer<TDoc, TContext>,
5050
opts?: FindOneResolverOpts
5151
): Resolver<TSource, TContext, TArgs, TDoc> {
5252
if (!model || !model.modelName || !model.schema) {

src/resolvers/helpers/filter.ts

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

3-
import { ObjectTypeComposer, ObjectTypeComposerArgumentConfigMap } from 'graphql-compose';
3+
import {
4+
ObjectTypeComposer,
5+
InterfaceTypeComposer,
6+
ObjectTypeComposerArgumentConfigMap,
7+
} from 'graphql-compose';
48
import type { Model, Document } from 'mongoose';
59
import { isObject, toMongoFilterDottedObject, getIndexedFieldNamesForGraphQL } from '../../utils';
610
import type { ExtendedResolveParams } from '../index';
@@ -62,7 +66,7 @@ export const getFilterHelperArgOptsMap = (): Record<string, string | string[]> =
6266
});
6367

6468
export function filterHelperArgs<TDoc extends Document = any>(
65-
typeComposer: ObjectTypeComposer<TDoc, any>,
69+
typeComposer: ObjectTypeComposer<TDoc, any> | InterfaceTypeComposer<TDoc, any>,
6670
model: Model<TDoc>,
6771
opts?: FilterHelperArgsOpts
6872
): ObjectTypeComposerArgumentConfigMap<{ filter: any }> {

src/resolvers/helpers/payloadRecordId.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import {
22
ObjectTypeComposer,
3+
InterfaceTypeComposer,
34
ComposeOutputTypeDefinition,
45
ObjectTypeComposerFieldConfigMapDefinition,
56
toInputType,
@@ -13,7 +14,7 @@ export type PayloadRecordIdHelperOpts = {
1314
};
1415

1516
export function payloadRecordId<TSource = any, TContext = any>(
16-
tc: ObjectTypeComposer<TSource, TContext>,
17+
tc: ObjectTypeComposer<TSource, TContext> | InterfaceTypeComposer<TSource, TContext>,
1718
opts?: PayloadRecordIdHelperOpts | false
1819
): ObjectTypeComposerFieldConfigMapDefinition<TSource, TContext> | null {
1920
if (opts === false) return null;
@@ -39,7 +40,7 @@ export type PayloadRecordIdsHelperOpts = {
3940
};
4041

4142
export function payloadRecordIds<TSource = any, TContext = any>(
42-
tc: ObjectTypeComposer<TSource, TContext>,
43+
tc: ObjectTypeComposer<TSource, TContext> | InterfaceTypeComposer<TSource, TContext>,
4344
opts?: PayloadRecordIdHelperOpts | false
4445
): ObjectTypeComposerFieldConfigMapDefinition<TSource, TContext> | null {
4546
if (opts === false) return null;

src/resolvers/helpers/record.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import {
22
ObjectTypeComposer,
3+
InterfaceTypeComposer,
34
ObjectTypeComposerArgumentConfigMapDefinition,
45
InputTypeComposer,
56
} from 'graphql-compose';
@@ -42,7 +43,7 @@ export const getRecordHelperArgsOptsMap = (): Record<string, string> => ({
4243
});
4344

4445
export function recordHelperArgs<TDoc extends Document = any>(
45-
tc: ObjectTypeComposer<TDoc, any>,
46+
tc: ObjectTypeComposer<TDoc, any> | InterfaceTypeComposer<TDoc, any>,
4647
opts?: RecordHelperArgsOpts
4748
): ObjectTypeComposerArgumentConfigMapDefinition<{ record: any }> {
4849
if (!tc || tc.constructor.name !== 'ObjectTypeComposer') {

src/resolvers/helpers/sort.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import type { Model, Document } from 'mongoose';
44
import {
55
ObjectTypeComposerArgumentConfigMapDefinition,
66
ObjectTypeComposer,
7+
InterfaceTypeComposer,
78
SchemaComposer,
89
EnumTypeComposer,
910
isObject,
@@ -24,7 +25,7 @@ export type SortHelperArgsOpts = {
2425
};
2526

2627
export function sortHelperArgs<TDoc extends Document = any>(
27-
tc: ObjectTypeComposer<TDoc, any>,
28+
tc: ObjectTypeComposer<TDoc, any> | InterfaceTypeComposer<TDoc, any>,
2829
model: Model<TDoc>,
2930
opts?: SortHelperArgsOpts
3031
): ObjectTypeComposerArgumentConfigMapDefinition<{ sort: any }> {

src/resolvers/pagination.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { Resolver, ObjectTypeComposer } from 'graphql-compose';
1+
import type { Resolver, ObjectTypeComposer, InterfaceTypeComposer } from 'graphql-compose';
22
import type { Model, Document } from 'mongoose';
33
import {
44
preparePaginationResolver,
@@ -18,7 +18,7 @@ export type PaginationResolverOpts = Omit<
1818

1919
export function pagination<TSource = any, TContext = any, TDoc extends Document = any>(
2020
model: Model<TDoc>,
21-
tc: ObjectTypeComposer<TDoc, TContext>,
21+
tc: ObjectTypeComposer<TDoc, TContext> | InterfaceTypeComposer<TDoc, TContext>,
2222
opts?: PaginationResolverOpts
2323
): Resolver<TSource, TContext, PaginationTArgs, TDoc> {
2424
const { countOpts, findManyOpts, ...restOpts } = opts || {};

src/resolvers/removeById.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { toInputType } from 'graphql-compose';
2-
import type { Resolver, ObjectTypeComposer } from 'graphql-compose';
2+
import type { Resolver, ObjectTypeComposer, InterfaceTypeComposer } from 'graphql-compose';
33
import type { Model, Document } from 'mongoose';
44
import { findById } from './findById';
55
import type { ExtendedResolveParams } from './index';
@@ -21,7 +21,7 @@ type TArgs = {
2121

2222
export function removeById<TSource = any, TContext = any, TDoc extends Document = any>(
2323
model: Model<TDoc>,
24-
tc: ObjectTypeComposer<TDoc, TContext>,
24+
tc: ObjectTypeComposer<TDoc, TContext> | InterfaceTypeComposer<TDoc, TContext>,
2525
opts?: RemoveByIdResolverOpts
2626
): Resolver<TSource, TContext, TArgs, TDoc> {
2727
if (!model || !model.modelName || !model.schema) {

src/resolvers/removeMany.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { Resolver, ObjectTypeComposer } from 'graphql-compose';
1+
import type { Resolver, ObjectTypeComposer, InterfaceTypeComposer } from 'graphql-compose';
22
import type { Model, Document } from 'mongoose';
33
import {
44
filterHelperArgs,
@@ -28,7 +28,7 @@ type TArgs = {
2828

2929
export function removeMany<TSource = any, TContext = any, TDoc extends Document = any>(
3030
model: Model<TDoc>,
31-
tc: ObjectTypeComposer<TDoc, TContext>,
31+
tc: ObjectTypeComposer<TDoc, TContext> | InterfaceTypeComposer<TDoc, TContext>,
3232
opts?: RemoveManyResolverOpts
3333
): Resolver<TSource, TContext, TArgs, TDoc> {
3434
if (!model || !model.modelName || !model.schema) {

src/resolvers/removeOne.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { Resolver, ObjectTypeComposer } from 'graphql-compose';
1+
import type { Resolver, ObjectTypeComposer, InterfaceTypeComposer } from 'graphql-compose';
22
import type { Model, Document } from 'mongoose';
33
import {
44
filterHelperArgs,
@@ -30,7 +30,7 @@ type TArgs = {
3030

3131
export function removeOne<TSource = any, TContext = any, TDoc extends Document = any>(
3232
model: Model<TDoc>,
33-
tc: ObjectTypeComposer<TDoc, TContext>,
33+
tc: ObjectTypeComposer<TDoc, TContext> | InterfaceTypeComposer<TDoc, TContext>,
3434
opts?: RemoveOneResolverOpts
3535
): Resolver<TSource, TContext, TArgs, TDoc> {
3636
if (!model || !model.modelName || !model.schema) {

src/resolvers/updateById.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { toInputType } from 'graphql-compose';
2-
import { Resolver, ObjectTypeComposer } from 'graphql-compose';
2+
import { Resolver, ObjectTypeComposer, InterfaceTypeComposer } from 'graphql-compose';
33
import type { Model, Document } from 'mongoose';
44
import { recordHelperArgs, RecordHelperArgsOpts } from './helpers/record';
55
import { findById } from './findById';
@@ -26,7 +26,7 @@ type TArgs = {
2626

2727
export function updateById<TSource = any, TContext = any, TDoc extends Document = any>(
2828
model: Model<TDoc>,
29-
tc: ObjectTypeComposer<TDoc, TContext>,
29+
tc: ObjectTypeComposer<TDoc, TContext> | InterfaceTypeComposer<TDoc, TContext>,
3030
opts?: UpdateByIdResolverOpts
3131
): Resolver<TSource, TContext, TArgs, TDoc> {
3232
if (!model || !model.modelName || !model.schema) {

src/resolvers/updateMany.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { Resolver, ObjectTypeComposer } from 'graphql-compose';
1+
import type { Resolver, ObjectTypeComposer, InterfaceTypeComposer } from 'graphql-compose';
22
import type { Model, Document } from 'mongoose';
33
import {
44
limitHelper,
@@ -45,7 +45,7 @@ type TArgs = {
4545

4646
export function updateMany<TSource = any, TContext = any, TDoc extends Document = any>(
4747
model: Model<TDoc>,
48-
tc: ObjectTypeComposer<TDoc, TContext>,
48+
tc: ObjectTypeComposer<TDoc, TContext> | InterfaceTypeComposer<TDoc, TContext>,
4949
opts?: UpdateManyResolverOpts
5050
): Resolver<TSource, TContext, TArgs, TDoc> {
5151
if (!model || !model.modelName || !model.schema) {

src/resolvers/updateOne.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Resolver, ObjectTypeComposer } from 'graphql-compose';
1+
import { Resolver, ObjectTypeComposer, InterfaceTypeComposer } from 'graphql-compose';
22
import type { Model, Document } from 'mongoose';
33
import type { ExtendedResolveParams } from './index';
44
import {
@@ -39,7 +39,7 @@ type TArgs = {
3939

4040
export function updateOne<TSource = any, TContext = any, TDoc extends Document = any>(
4141
model: Model<TDoc>,
42-
tc: ObjectTypeComposer<TDoc, TContext>,
42+
tc: ObjectTypeComposer<TDoc, TContext> | InterfaceTypeComposer<TDoc, TContext>,
4343
opts?: UpdateOneResolverOpts
4444
): Resolver<TSource, TContext, TArgs, TDoc> {
4545
if (!model || !model.modelName || !model.schema) {

0 commit comments

Comments
 (0)