mirror of
https://github.com/koush/scrypted.git
synced 2026-04-12 03:20:21 +01:00
29 lines
685 B
TypeScript
29 lines
685 B
TypeScript
export function createActivityTimeout(timeout: number, timeoutCallback: () => void) {
|
|
let dataTimeout: NodeJS.Timeout;
|
|
|
|
let lastTime = Date.now();
|
|
function resetActivityTimer() {
|
|
lastTime = Date.now();
|
|
}
|
|
|
|
function clearActivityTimer() {
|
|
clearInterval(dataTimeout);
|
|
}
|
|
|
|
if (timeout) {
|
|
dataTimeout = setInterval(() => {
|
|
if (Date.now() > lastTime + timeout) {
|
|
clearInterval(dataTimeout);
|
|
dataTimeout = undefined;
|
|
timeoutCallback();
|
|
}
|
|
}, timeout);
|
|
}
|
|
|
|
resetActivityTimer();
|
|
return {
|
|
resetActivityTimer,
|
|
clearActivityTimer,
|
|
}
|
|
}
|