-
-
Notifications
You must be signed in to change notification settings - Fork 286
/
MongooseSchemaOptions.ts
48 lines (39 loc) · 1.31 KB
/
MongooseSchemaOptions.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
46
47
48
import {HookDoneFunction, HookErrorCallback, HookNextFunction, NativeError, Schema, SchemaOptions} from "mongoose";
import {MongooseDocument} from "./MongooseDocument";
export interface MongoosePreHookAsyncCB<T> {
(doc: MongooseDocument<T>, next: HookNextFunction, done: HookDoneFunction): any;
}
export interface MongoosePreHookSyncCB<T> {
(doc: MongooseDocument<T>, next: HookNextFunction): any;
}
export interface MongoosePostErrorHookCB<T> {
(error: any, doc: MongooseDocument<T>, next: (err?: NativeError) => void): void;
}
export interface MongoosePostHookCB<T> {
(doc: MongooseDocument<T>, next: (err?: NativeError) => void): void;
}
export interface MongoosePreHook {
method: string;
fn: MongoosePreHookSyncCB<any> | MongoosePreHookAsyncCB<any>;
parallel?: boolean;
errorCb?: HookErrorCallback;
}
export interface MongoosePostHook {
method: string;
fn: MongoosePostHookCB<any> | MongoosePostErrorHookCB<any>;
}
export interface MongoosePluginOptions {
plugin: (schema: Schema, options?: any) => void;
options?: any;
}
export interface MongooseIndexOptions {
fields: object;
options?: any;
}
export interface MongooseSchemaOptions {
schemaOptions?: SchemaOptions;
plugins?: MongoosePluginOptions[];
indexes?: MongooseIndexOptions[];
pre?: MongoosePreHook[];
post?: MongoosePostHook[];
}