Skip to content

Commit 643bae0

Browse files
committed
Switch type check to use 'instanceof' instead of constructor.name for supporting extended types
1 parent e32b441 commit 643bae0

19 files changed

+36
-39
lines changed

src/resolvers/connection.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import {
44
ConnectionResolverOpts as _ConnectionResolverOpts,
55
ConnectionTArgs,
66
} from 'graphql-compose-connection';
7-
import type { Resolver, ObjectTypeComposer } from 'graphql-compose';
7+
import { Resolver, ObjectTypeComposer } from 'graphql-compose';
88
import { CountResolverOpts, count } from './count';
99
import { FindManyResolverOpts, findMany } from './findMany';
1010
import { getUniqueIndexes, extendByReversedIndexes, IndexT } from '../utils/getIndexesFromModel';

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 { Resolver, ObjectTypeComposer } from 'graphql-compose';
22
import type { Model, Document } from 'mongoose';
33
import {
44
filterHelper,
@@ -29,7 +29,7 @@ export function count<TSource = any, TContext = any, TDoc extends Document = any
2929
throw new Error('First arg for Resolver count() should be instance of Mongoose Model.');
3030
}
3131

32-
if (!tc || tc.constructor.name !== 'ObjectTypeComposer') {
32+
if (!tc || !(tc instanceof ObjectTypeComposer)) {
3333
throw new Error('Second arg for Resolver count() should be instance of ObjectTypeComposer.');
3434
}
3535

src/resolvers/createMany.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ export function createMany<TSource = any, TContext = any, TDoc extends Document
2929
throw new Error('First arg for Resolver createMany() should be instance of Mongoose Model.');
3030
}
3131

32-
if (!tc || tc.constructor.name !== 'ObjectTypeComposer') {
32+
if (!tc || !(tc instanceof ObjectTypeComposer)) {
3333
throw new Error(
3434
'Second arg for Resolver createMany() should be instance of ObjectTypeComposer.'
3535
);

src/resolvers/createOne.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ export function createOne<TSource = any, TContext = any, TDoc extends Document =
3030
throw new Error('First arg for Resolver createOne() should be instance of Mongoose Model.');
3131
}
3232

33-
if (!tc || tc.constructor.name !== 'ObjectTypeComposer') {
33+
if (!tc || !(tc instanceof ObjectTypeComposer)) {
3434
throw new Error(
3535
'Second arg for Resolver createOne() should be instance of ObjectTypeComposer.'
3636
);

src/resolvers/dataLoader.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
import { toInputType } from 'graphql-compose';
2-
import type { Resolver, ObjectTypeComposer } from 'graphql-compose';
1+
import { Resolver, ObjectTypeComposer, toInputType } from 'graphql-compose';
32
import type { Model, Document } from 'mongoose';
43
import {
54
projectionHelper,
@@ -40,7 +39,7 @@ export function dataLoader<TSource = any, TContext = any, TDoc extends Document
4039
throw new Error('First arg for Resolver dataLoader() should be instance of Mongoose Model.');
4140
}
4241

43-
if (!tc || tc.constructor.name !== 'ObjectTypeComposer') {
42+
if (!tc || !(tc instanceof ObjectTypeComposer)) {
4443
throw new Error(
4544
'Second arg for Resolver dataLoader() should be instance of ObjectTypeComposer.'
4645
);

src/resolvers/dataLoaderMany.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
import { toInputType } from 'graphql-compose';
2-
import type { Resolver, ObjectTypeComposer } from 'graphql-compose';
1+
import { Resolver, ObjectTypeComposer, toInputType } from 'graphql-compose';
32
import type { Model, Document } from 'mongoose';
43
import {
54
projectionHelper,
@@ -42,7 +41,7 @@ export function dataLoaderMany<TSource = any, TContext = any, TDoc extends Docum
4241
);
4342
}
4443

45-
if (!tc || tc.constructor.name !== 'ObjectTypeComposer') {
44+
if (!tc || !(tc instanceof ObjectTypeComposer)) {
4645
throw new Error(
4746
'Second arg for Resolver dataLoaderMany() should be instance of ObjectTypeComposer.'
4847
);

src/resolvers/findById.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
import { toInputType } from 'graphql-compose';
2-
import type { Resolver, ObjectTypeComposer } from 'graphql-compose';
1+
import { Resolver, ObjectTypeComposer, toInputType } from 'graphql-compose';
32
import type { Model, Document } from 'mongoose';
43
import {
54
projectionHelper,
@@ -9,6 +8,7 @@ import {
98
} from './helpers';
109
import type { ExtendedResolveParams } from './index';
1110
import { beforeQueryHelper, beforeQueryHelperLean } from './helpers/beforeQueryHelper';
11+
// import { EDiscriminatorTypeComposer } from '../enhancedDiscriminators';
1212

1313
// eslint-disable-next-line @typescript-eslint/no-empty-interface
1414
export interface FindByIdResolverOpts {
@@ -39,15 +39,17 @@ export function findById<TSource = any, TContext = any, TDoc extends Document =
3939
throw new Error('First arg for Resolver findById() should be instance of Mongoose Model.');
4040
}
4141

42-
if (!tc || tc.constructor.name !== 'ObjectTypeComposer') {
42+
if (!tc || !(tc instanceof ObjectTypeComposer)) {
4343
throw new Error('Second arg for Resolver findById() should be instance of ObjectTypeComposer.');
4444
}
4545

4646
const aliases = prepareNestedAliases(model.schema);
4747
const aliasesReverse = prepareAliasesReverse(model.schema);
4848

49+
// const typeTC = tc instanceof EDiscriminatorTypeComposer ? tc.getDInterface() : tc;
50+
4951
return tc.schemaComposer.createResolver<TSource, TArgs>({
50-
type: tc,
52+
type: tc.getTypeName(),
5153
name: 'findById',
5254
kind: 'query',
5355
args: {

src/resolvers/findByIds.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
import { toInputType } from 'graphql-compose';
2-
import type { Resolver, ObjectTypeComposer } from 'graphql-compose';
1+
import { Resolver, ObjectTypeComposer, toInputType } from 'graphql-compose';
32
import type { Model, Document } from 'mongoose';
43
import {
54
limitHelper,
@@ -48,7 +47,7 @@ export function findByIds<TSource = any, TContext = any, TDoc extends Document =
4847
throw new Error('First arg for Resolver findByIds() should be instance of Mongoose Model.');
4948
}
5049

51-
if (!tc || tc.constructor.name !== 'ObjectTypeComposer') {
50+
if (!tc || !(tc instanceof ObjectTypeComposer)) {
5251
throw new Error(
5352
'Second arg for Resolver findByIds() should be instance of ObjectTypeComposer.'
5453
);

src/resolvers/findMany.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { Resolver, ObjectTypeComposer } from 'graphql-compose';
1+
import { Resolver, ObjectTypeComposer } from 'graphql-compose';
22
import type { Model, Document } from 'mongoose';
33
import {
44
limitHelper,
@@ -58,15 +58,15 @@ export function findMany<TSource = any, TContext = any, TDoc extends Document =
5858
throw new Error('First arg for Resolver findMany() should be instance of Mongoose Model.');
5959
}
6060

61-
if (!tc || tc.constructor.name !== 'ObjectTypeComposer') {
61+
if (!tc || !(tc instanceof ObjectTypeComposer)) {
6262
throw new Error('Second arg for Resolver findMany() should be instance of ObjectTypeComposer.');
6363
}
6464

6565
const aliases = prepareNestedAliases(model.schema);
6666
const aliasesReverse = prepareAliasesReverse(model.schema);
6767

6868
return tc.schemaComposer.createResolver<TSource, TArgs>({
69-
type: tc.NonNull.List.NonNull,
69+
type: tc.schemaComposer.getAnyTC(tc.getTypeName()).NonNull.List.NonNull,
7070
name: 'findMany',
7171
kind: 'query',
7272
args: {

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 { Resolver, ObjectTypeComposer } from 'graphql-compose';
22
import type { Model, Document } from 'mongoose';
33
import {
44
skipHelper,
@@ -53,7 +53,7 @@ export function findOne<TSource = any, TContext = any, TDoc extends Document = a
5353
throw new Error('First arg for Resolver findOne() should be instance of Mongoose Model.');
5454
}
5555

56-
if (!tc || tc.constructor.name !== 'ObjectTypeComposer') {
56+
if (!tc || !(tc instanceof ObjectTypeComposer)) {
5757
throw new Error('Second arg for Resolver findOne() should be instance of ObjectTypeComposer.');
5858
}
5959

0 commit comments

Comments
 (0)