|
3 | 3 |
|
4 | 4 | import type { MongooseDocument } from 'mongoose'; |
5 | 5 | import type { ConnectionSortMapOpts as _ConnectionSortMapOpts } from 'graphql-compose-connection'; |
6 | | -import type { Resolver, ObjectTypeComposer } from 'graphql-compose'; |
| 6 | +import type { |
| 7 | + Resolver, |
| 8 | + ObjectTypeComposer, |
| 9 | + ObjectTypeComposerFieldConfigMap, |
| 10 | +} from 'graphql-compose'; |
7 | 11 | import { |
8 | 12 | getUniqueIndexes, |
9 | 13 | extendByReversedIndexes, |
10 | 14 | type IndexT, |
11 | 15 | } from '../utils/getIndexesFromModel'; |
12 | 16 |
|
13 | | -export type ConnectionSortMapOpts = _ConnectionSortMapOpts; |
| 17 | +export type ConnectionOpts<TContext> = _ConnectionSortMapOpts & { |
| 18 | + edgeFields?: ObjectTypeComposerFieldConfigMap<any, TContext>, |
| 19 | + connectionResolverName?: string, |
| 20 | + findResolverName?: string, |
| 21 | + countResolverName?: string, |
| 22 | +}; |
14 | 23 |
|
15 | 24 | export default function connection<TSource: MongooseDocument, TContext>( |
16 | 25 | model: Class<TSource>, // === MongooseModel |
17 | 26 | tc: ObjectTypeComposer<TSource, TContext>, |
18 | | - opts?: ConnectionSortMapOpts |
| 27 | + opts: ConnectionOpts<TContext> = {} |
19 | 28 | ): ?Resolver<TSource, TContext> { |
20 | 29 | try { |
21 | 30 | require.resolve('graphql-compose-connection'); |
@@ -56,14 +65,22 @@ export default function connection<TSource: MongooseDocument, TContext>( |
56 | 65 | }, |
57 | 66 | }; |
58 | 67 | }); |
59 | | - |
| 68 | + const { |
| 69 | + connectionResolverName = 'connection', |
| 70 | + findResolverName = 'findMany', |
| 71 | + countResolverName = 'count', |
| 72 | + edgeFields, |
| 73 | + ...sortOptions |
| 74 | + } = opts |
60 | 75 | return prepareConnectionResolver(tc, { |
61 | | - findResolverName: 'findMany', |
62 | | - countResolverName: 'count', |
| 76 | + connectionResolverName, |
| 77 | + findResolverName, |
| 78 | + countResolverName, |
63 | 79 | sort: { |
64 | 80 | ...sortConfigs, |
65 | | - ...opts, |
| 81 | + ...sortOptions, |
66 | 82 | }, |
| 83 | + edgeFields, |
67 | 84 | }); |
68 | 85 | } |
69 | 86 |
|
|
0 commit comments