-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathindex.d.ts
75 lines (65 loc) · 1.48 KB
/
index.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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import { Context, Application } from "egg";
import { Queue, QueueOptions, JobOptions, Job as BullJob } from "bull";
interface Bus {
get(name: string): Queue;
dispatch<T = object>(name: string, payload?: T, options?: JobOptions): void;
emit<T = object>(name: string, payload?: T, options?: JobOptions): void;
}
interface BusEvent<T = object> {
name: string;
data: T;
}
interface EggBusOptions {
app?: boolean;
agent?: boolean;
debug?: boolean;
concurrency?: number;
listener?: {
ignore?: string;
baseDir?: string;
options?: JobOptions;
};
bull?: QueueOptions;
queue?: {
prefix?: string;
default?: string;
};
job?: {
ignore?: string;
baseDir?: string;
options?: JobOptions;
};
queues?: {
[x: string]: QueueOptions & { concurrency: number };
};
}
declare module "egg" {
interface Application {
bus: Bus;
}
interface EggAppConfig {
bus: EggBusOptions;
}
}
declare module "egg-bus" {
interface ListenerStruct<T> {
name: string;
data: T;
}
abstract class Listener<T = object> {
ctx: Context;
app: Application;
abstract run(event: BusEvent<T>, job: BullJob): Promise<any>;
abstract failed(
struct: ListenerStruct<T>,
error: Error,
job: BullJob
): Promise<any>;
}
abstract class Job<T = object> {
ctx: Context;
app: Application;
abstract run(data: T, job: BullJob): Promise<any>;
abstract failed(data: T, error: Error, job: BullJob): Promise<any>;
}
}