UNPKG

1.96 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.createClient = undefined;
7
8var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
9
10var _redis = require('redis');
11
12var _redis2 = _interopRequireDefault(_redis);
13
14var _clui = require('clui');
15
16var _clui2 = _interopRequireDefault(_clui);
17
18function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
20var countdown = new _clui2.default.Spinner();
21var started = void 0;
22
23var createClient = exports.createClient = function createClient(config) {
24 var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { debug: false },
25 debug = _ref.debug;
26
27 var client = _redis2.default.createClient(_extends({}, config, {
28 retry_strategy: function retry_strategy(_ref2) {
29 var attempt = _ref2.attempt,
30 total_retry_time = _ref2.total_retry_time,
31 error = _ref2.error,
32 time_connected = _ref2.time_connected;
33
34 if (attempt > 20) {
35 return;
36 }
37
38 return Math.min(attempt * 100, 3000);
39 }
40 }));
41
42 client.on('connect', function () {
43 if (debug) {
44 started = false;
45 countdown.stop();
46 }
47 });
48
49 client.on('reconnecting', function (_ref3) {
50 var delay = _ref3.delay,
51 attempt = _ref3.attempt;
52
53 if (debug) {
54 countdown.message('attempting (' + attempt + ') to reconnect in ' + delay + 'ms...');
55 if (!started) {
56 started = true;
57 countdown.start();
58 }
59 }
60 });
61
62 process.on('exit', function () {
63 debug && console.log('client is quiting forcefully');
64 client.end(true);
65 });
66
67 return client;
68};
69
70var defaultClient = createClient({
71 url: process.env.REDIS_URL
72});
73
74exports.default = defaultClient;
\No newline at end of file