forked from ABXTrading/epicurus-node
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
40 lines (40 loc) · 1.67 KB
/
index.js
File metadata and controls
40 lines (40 loc) · 1.67 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
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const bluebird = require("bluebird");
const redis = require("redis");
const config_1 = require("./config");
const pub_sub_1 = require("./lib/pub_sub");
const request_response_1 = require("./lib/request_response");
bluebird.promisifyAll(redis.RedisClient.prototype);
bluebird.promisifyAll(redis.Multi.prototype);
function Epicurus(redisConfig = {
host: 'localhost',
port: 6379
}, requestTimeout) {
const redisClient = redis.createClient(redisConfig);
const redisSub = redis.createClient(redisConfig);
const requestValidityPeriod = requestTimeout || config_1.config.requestValidityPeriod;
pub_sub_1.setupSubscriptionListener(redisSub);
request_response_1.enableServers();
return {
getRedisClient: () => redisClient,
getRedisSubClient: () => redisSub,
subscribe: (channel, callback) => pub_sub_1.subscribe(redisSub, channel, callback),
publish: (channel, body) => pub_sub_1.publish(redisClient, channel, body),
server: (channel, callback) => request_response_1.server(redisClient, channel, callback, requestValidityPeriod),
request: (channel, body) => request_response_1.request(redisClient, channel, body, requestValidityPeriod),
shutdown: () => {
pub_sub_1.shutdownSubscribers();
request_response_1.disableServers();
},
close: () => {
redisSub.unsubscribe();
redisSub.quit();
redisClient.quit();
pub_sub_1.removeCallbacks();
request_response_1.closeAllClients();
}
};
}
exports.default = Epicurus;
//# sourceMappingURL=index.js.map