Skip to content

Commit 1b13d4e

Browse files
committed
feat: allow to pass custom findManyResolver & countResolver as config params to connection & pagination resolvers
relates #288
1 parent e4b916b commit 1b13d4e

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

src/resolvers/connection.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ export type ConnectionResolverOpts<TContext = any> = Omit<
2323
_ConnectionResolverOpts<TContext>,
2424
'countResolver' | 'findManyResolver' | 'sort'
2525
> & {
26+
findManyResolver?: Resolver;
27+
countResolver?: Resolver;
2628
countOpts?: CountResolverOpts;
2729
findManyOpts?: FindManyResolverOpts;
2830
sort?: _ConnectionSortMapOpts;
@@ -60,11 +62,11 @@ export function connection<TSource = any, TContext = any, TDoc extends Document
6062
};
6163
});
6264

63-
const { findManyOpts, countOpts, ...restOpts } = opts || {};
65+
const { findManyOpts, countOpts, findManyResolver, countResolver, ...restOpts } = opts || {};
6466

6567
return prepareConnectionResolver<any, any>(tc, {
66-
findManyResolver: findMany(model, tc, findManyOpts),
67-
countResolver: count(model, tc, countOpts),
68+
findManyResolver: findManyResolver || findMany(model, tc, findManyOpts),
69+
countResolver: countResolver || count(model, tc, countOpts),
6870
sort: sortConfigs,
6971
...restOpts,
7072
});

src/resolvers/pagination.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ export type PaginationResolverOpts = Omit<
1212
_PaginationResolverOpts,
1313
'countResolver' | 'findManyResolver'
1414
> & {
15+
findManyResolver?: Resolver;
16+
countResolver?: Resolver;
1517
countOpts?: CountResolverOpts;
1618
findManyOpts?: FindManyResolverOpts;
1719
};
@@ -21,10 +23,10 @@ export function pagination<TSource = any, TContext = any, TDoc extends Document
2123
tc: ObjectTypeComposer<TDoc, TContext> | InterfaceTypeComposer<TDoc, TContext>,
2224
opts?: PaginationResolverOpts
2325
): Resolver<TSource, TContext, PaginationTArgs, TDoc> {
24-
const { countOpts, findManyOpts, ...restOpts } = opts || {};
26+
const { countOpts, findManyOpts, findManyResolver, countResolver, ...restOpts } = opts || {};
2527
const resolver = preparePaginationResolver<any, any>(tc, {
26-
findManyResolver: findMany(model, tc, findManyOpts),
27-
countResolver: count(model, tc, countOpts),
28+
findManyResolver: findManyResolver || findMany(model, tc, findManyOpts),
29+
countResolver: countResolver || count(model, tc, countOpts),
2830
...restOpts,
2931
});
3032
return resolver;

0 commit comments

Comments
 (0)