-
Notifications
You must be signed in to change notification settings - Fork 1
/
collection-hooks.d.ts
45 lines (37 loc) · 1.04 KB
/
collection-hooks.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/* eslint no-unused-vars: 0 */
declare module "meteor/pmogollons:collection-hooks" {
interface CollectionHooks {
onError: (callback: (error: Error) => void) => void;
}
}
declare module "meteor/mongo" {
type AnyObject = Record<string, any>;
type DependencyGraph = {
[field: string]: DependencyGraph
}
type FilterParams = {
filters: AnyObject;
options: AnyObject;
params: AnyObject;
}
type Body<T> = {
[field: string]: DependencyGraph | Body<T>;
}
type HookParams = {
doc: AnyObject;
previousDoc?: Body<any>;
userId?: string;
}
type HookOptions = {
docFields?: AnyObject;
fetchPrevious?: boolean;
}
namespace Mongo {
interface Collection<T, U = T> {
onInsert(callback: (params: HookParams) => void, options?: HookOptions): void;
onUpdate(callback: (params: HookParams) => void, options?: HookOptions): void;
onRemove(callback: (params: HookParams) => void, options?: HookOptions): void;
onBeforeInsert(callback: (params: HookParams) => void): void;
}
}
}