index.ts
1.0 KB
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
var adapter: any = require('./hemera')
var config: any = {}
export function init(cfg: any, callback?: Function) {
switch (cfg.type) {
case 'fast':
adapter = require('./fast')
break;
default:
adapter = require('./hemera')
break;
}
config = cfg
adapter.init(cfg, callback)
}
interface Pattern {
pubsub$?: boolean
timeout$?: number
maxMessages$?: number
expectedMessages$?: number
[key: string]: any
}
export function add(args: Pattern, callback: Function) {
if (adapter) {
adapter.add(ckArgs(args), callback)
}
}
export async function act(args: Pattern, isThrowError = false) {
return adapter.act(ckArgs(args), isThrowError)
}
function ckArgs(args: Pattern) {
if (!args) return;
if (!args.topic) args.topic = config.name
//if (!args.topic || !args.cmd) throw new Error('topic and cmd is null')
if (args.topic) args.topic = args.topic.toLowerCase()
if (args.cmd) args.cmd = args.cmd.toLowerCase()
return args
}