UNPKG

@progress/telerik-jquery-report-viewer

Version:

Progress® Telerik® Report Viewer for jQuery

49 lines (46 loc) 1.15 kB
import { stringResources } from './stringResources.js'; function isNumber(value) { return typeof value === "number" && isFinite(value); } function secondsToMilliseconds(seconds) { return seconds * 1e3; } function ServiceClientSentinel(serviceClient, clientID, sessionTimeoutSeconds) { if (!serviceClient) { throw stringResources.noServiceClient; } if (!isNumber(sessionTimeoutSeconds)) { throw "sessionTimeoutSeconds must a number and must be finite"; } var interval; var pingMilliseconds; if (sessionTimeoutSeconds <= 120) { pingMilliseconds = secondsToMilliseconds(sessionTimeoutSeconds) / 2; } else { pingMilliseconds = secondsToMilliseconds(sessionTimeoutSeconds - 60); } function start() { if (pingMilliseconds <= 0) { return; } interval = setInterval(function() { serviceClient.keepClientAlive(clientID); }, pingMilliseconds); } function restart() { stop(); start(); } function stop() { if (interval) { clearInterval(interval); interval = null; } } return { start, restart, stop }; } export { ServiceClientSentinel };