1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.createClient = undefined;
|
7 |
|
8 | var _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 |
|
10 | var _redis = require('redis');
|
11 |
|
12 | var _redis2 = _interopRequireDefault(_redis);
|
13 |
|
14 | var _clui = require('clui');
|
15 |
|
16 | var _clui2 = _interopRequireDefault(_clui);
|
17 |
|
18 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
19 |
|
20 | var countdown = new _clui2.default.Spinner();
|
21 | var started = void 0;
|
22 |
|
23 | var 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 |
|
70 | var defaultClient = createClient({
|
71 | url: process.env.REDIS_URL
|
72 | });
|
73 |
|
74 | exports.default = defaultClient; |
\ | No newline at end of file |