lml-main
Version:
This is now a mono repository published into many standalone packages.
29 lines • 1.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var moment = require("moment");
var rxjs_1 = require("rxjs");
var selectors_1 = require("../selectors");
var actions_1 = require("../actions");
// we must have a
var MIN_HEALTHCHECK_INTERVAL = 120000;
exports.pusherHealthcheck = function (action$, store) {
return action$.ofType(actions_1.PUSHER_CONNECTION_SUCCESS)
.mergeMap(function (action) {
return rxjs_1.Observable.interval(120000).map(function (i) {
var state = store.getState();
var metadata = selectors_1.getMetadataState(state);
var now = moment();
var timedoutChannels = Object.keys(metadata)
.filter(function (channel) {
var item = metadata[channel];
var diff = now.diff(moment(item.timestamp));
return diff > MIN_HEALTHCHECK_INTERVAL;
});
if (timedoutChannels.length) {
return actions_1.pusherHealthcheckTimeout(timedoutChannels);
}
return actions_1.pusherHealthcheckSuccess();
});
});
};
//# sourceMappingURL=healthcheck.js.map