aboutsummaryrefslogtreecommitdiff
path: root/src/client/util/ClientDiagnostics.ts
blob: 0a213aa1cf84fbc4e6bbb48a6c4b39d70b987fd6 (plain)
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
export namespace ClientDiagnostics {

    export async function start() {

        let serverPolls = 0;
        const serverHandle = setInterval(async () => {
            if (++serverPolls === 20) {
                alert("Your connection to the server has been terminated.");
                clearInterval(serverHandle);
            }
            await fetch("/serverHeartbeat");
            serverPolls--;
        }, 1000 * 15);

        let executed = false;
        let solrHandle: NodeJS.Timeout | undefined;
        const handler = async () => {
            const response = await fetch("/solrHeartbeat");
            if (!(await response.json()).running) {
                if (!executed) {
                    alert("Looks like SOLR is not running on your machine.");
                    executed = true;
                    solrHandle && clearInterval(solrHandle);
                }
            }
        };
        await handler();
        if (!executed) {
            solrHandle = setInterval(handler, 1000 * 15);
        }

    }

}