Skip to content

Commit 89d3f23

Browse files
authored
Merge pull request feathersjs-ecosystem#448 from j2L4e/typings/fastJoin
Typings: Add context to resolver callback arguments.
2 parents 5d86057 + 058e143 commit 89d3f23

File tree

2 files changed

+22
-3
lines changed

2 files changed

+22
-3
lines changed

types/index.d.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -161,16 +161,20 @@ export function discardQuery(...fieldNames: string[]): Hook;
161161
*/
162162
export function existsByDot(object: any, path: string): boolean;
163163

164-
export type SimpleResolver<T> = (...args: any[]) => (item: T) => Promise<any>;
164+
export interface ResolverContext<T = any> extends HookContext<T> {
165+
_loaders: any;
166+
}
167+
168+
export type SimpleResolver<T> = (...args: any[]) => (item: T, context: ResolverContext) => Promise<any>;
165169

166170
export interface RecursiveResolver<T> {
167171
resolver: SimpleResolver<T>;
168172
joins: ResolverMap<any>;
169173
}
170174

171175
export interface ResolverMap<T> {
172-
after?: AsyncContextFunction<void>;
173-
before?: AsyncContextFunction<void>;
176+
after?: (context: ResolverContext) => void | Promise<void>;
177+
before?: (context: ResolverContext) => void | Promise<void>;
174178
joins: {
175179
[property: string]: SimpleResolver<T> | RecursiveResolver<T>;
176180
};

types/tests.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,21 @@ const postResolvers: ResolverMap<any> = {
181181
}
182182
};
183183

184+
const userResolvers: ResolverMap<any> = {
185+
joins: {
186+
memberships: () => async (user, context) => {
187+
const memberships: any = (await context.app!.service
188+
('memberships').find({query: {
189+
user: user._id,
190+
$populate: 'role',
191+
}}));
192+
user.memberships = memberships.data;
193+
}
194+
}
195+
};
196+
197+
// $ExpectType Hook
198+
fastJoin(userResolvers);
184199
// $ExpectType Hook
185200
fastJoin(postResolvers);
186201
// $ExpectType Hook

0 commit comments

Comments
 (0)