mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
37 lines
1.2 KiB
TypeScript
37 lines
1.2 KiB
TypeScript
/**
|
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
|
*/
|
|
import { getInjectable } from "@ogre-tools/injectable";
|
|
import { getStartableStoppable } from "../../../common/utils/get-startable-stoppable";
|
|
import processCheckingForUpdatesInjectable from "../check-for-updates/process-checking-for-updates.injectable";
|
|
import withOrphanPromiseInjectable from "../../../common/utils/with-orphan-promise/with-orphan-promise.injectable";
|
|
|
|
const periodicalCheckForUpdatesInjectable = getInjectable({
|
|
id: "periodical-check-for-updates",
|
|
|
|
instantiate: (di) => {
|
|
const withOrphanPromise = di.inject(withOrphanPromiseInjectable);
|
|
const processCheckingForUpdates = withOrphanPromise(di.inject(processCheckingForUpdatesInjectable));
|
|
|
|
return getStartableStoppable("periodical-check-for-updates", () => {
|
|
const TWO_HOURS = 1000 * 60 * 60 * 2;
|
|
|
|
processCheckingForUpdates("periodic");
|
|
|
|
const intervalId = setInterval(() => {
|
|
|
|
processCheckingForUpdates("periodic");
|
|
}, TWO_HOURS);
|
|
|
|
return () => {
|
|
clearInterval(intervalId);
|
|
};
|
|
});
|
|
},
|
|
|
|
causesSideEffects: true,
|
|
});
|
|
|
|
export default periodicalCheckForUpdatesInjectable;
|