1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Convert all sync runnables to comply with new checks for sync-ness

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton 2022-11-07 11:13:01 -05:00
parent 0ef8c4d0c2
commit 404dcabe3a
35 changed files with 76 additions and 87 deletions

View File

@ -15,8 +15,9 @@ const applicationMenuReactivityInjectable = getInjectable({
const applicationMenuItemComposite = di.inject(applicationMenuItemCompositeInjectable); const applicationMenuItemComposite = di.inject(applicationMenuItemCompositeInjectable);
const populateApplicationMenu = di.inject(populateApplicationMenuInjectable); const populateApplicationMenu = di.inject(populateApplicationMenuInjectable);
return getStartableStoppable("application-menu-reactivity", () => return getStartableStoppable(
autorun(() => populateApplicationMenu(applicationMenuItemComposite.get()), { "application-menu-reactivity",
() => autorun(() => populateApplicationMenu(applicationMenuItemComposite.get()), {
delay: 100, delay: 100,
}), }),
); );

View File

@ -10,15 +10,11 @@ const stopApplicationMenuInjectable = getInjectable({
id: "stop-application-menu", id: "stop-application-menu",
instantiate: (di) => { instantiate: (di) => {
const applicationMenu = di.inject( const applicationMenu = di.inject(applicationMenuReactivityInjectable);
applicationMenuReactivityInjectable,
);
return { return {
id: "stop-application-menu", id: "stop-application-menu",
run: async () => { run: () => void applicationMenu.stop(),
await applicationMenu.stop();
},
}; };
}, },

View File

@ -7,6 +7,8 @@ import { getStartableStoppable } from "../../../../../common/utils/get-startable
import processCheckingForUpdatesInjectable from "../../../main/process-checking-for-updates.injectable"; import processCheckingForUpdatesInjectable from "../../../main/process-checking-for-updates.injectable";
import withOrphanPromiseInjectable from "../../../../../common/utils/with-orphan-promise/with-orphan-promise.injectable"; import withOrphanPromiseInjectable from "../../../../../common/utils/with-orphan-promise/with-orphan-promise.injectable";
const TWO_HOURS = 1000 * 60 * 60 * 2;
const periodicalCheckForUpdatesInjectable = getInjectable({ const periodicalCheckForUpdatesInjectable = getInjectable({
id: "periodical-check-for-updates", id: "periodical-check-for-updates",
@ -15,12 +17,9 @@ const periodicalCheckForUpdatesInjectable = getInjectable({
const processCheckingForUpdates = withOrphanPromise(di.inject(processCheckingForUpdatesInjectable)); const processCheckingForUpdates = withOrphanPromise(di.inject(processCheckingForUpdatesInjectable));
return getStartableStoppable("periodical-check-for-updates", () => { return getStartableStoppable("periodical-check-for-updates", () => {
const TWO_HOURS = 1000 * 60 * 60 * 2;
processCheckingForUpdates("periodic"); processCheckingForUpdates("periodic");
const intervalId = setInterval(() => { const intervalId = setInterval(() => {
processCheckingForUpdates("periodic"); processCheckingForUpdates("periodic");
}, TWO_HOURS); }, TWO_HOURS);

View File

@ -14,10 +14,12 @@ const stopCheckingForUpdatesInjectable = getInjectable({
return { return {
id: "stop-checking-for-updates", id: "stop-checking-for-updates",
run: async () => { run: () => {
if (periodicalCheckForUpdates.started) { if (periodicalCheckForUpdates.started) {
await periodicalCheckForUpdates.stop(); periodicalCheckForUpdates.stop();
} }
return undefined;
}, },
}; };
}, },

View File

@ -14,9 +14,7 @@ const stopWatchingIfUpdateShouldHappenOnQuitInjectable = getInjectable({
return { return {
id: "stop-watching-if-update-should-happen-on-quit", id: "stop-watching-if-update-should-happen-on-quit",
run: () => { run: () => void watchIfUpdateShouldHappenOnQuit.stop(),
watchIfUpdateShouldHappenOnQuit.stop();
},
}; };
}, },

View File

@ -44,6 +44,9 @@ const setupAppPathsInjectable = getInjectable({
) as AppPaths; ) as AppPaths;
appPathsState.set(appPaths); appPathsState.set(appPaths);
// NOTE: this is the worse of two evils. This makes sure that `RunnableSync` always is sync
return undefined;
}, },
}; };
}, },

View File

@ -13,8 +13,9 @@ const catalogSyncToRendererInjectable = getInjectable({
instantiate: (di) => { instantiate: (di) => {
const catalogEntityRegistry = di.inject(catalogEntityRegistryInjectable); const catalogEntityRegistry = di.inject(catalogEntityRegistryInjectable);
return getStartableStoppable("catalog-sync", () => return getStartableStoppable(
startCatalogSyncToRenderer(catalogEntityRegistry), "catalog-sync",
() => startCatalogSyncToRenderer(catalogEntityRegistry),
); );
}, },

View File

@ -14,10 +14,12 @@ const stopCatalogSyncInjectable = getInjectable({
return { return {
id: "stop-catalog-sync", id: "stop-catalog-sync",
run: async () => { run: () => {
if (catalogSyncToRenderer.started) { if (catalogSyncToRenderer.started) {
await catalogSyncToRenderer.stop(); catalogSyncToRenderer.stop();
} }
return undefined;
}, },
}; };
}, },

View File

@ -18,9 +18,7 @@ const syncThemeFromOperatingSystemInjectable = getInjectable({
return getStartableStoppable("sync-theme-from-operating-system", () => { return getStartableStoppable("sync-theme-from-operating-system", () => {
const updateThemeState = () => { const updateThemeState = () => {
const newTheme = getElectronTheme(); currentThemeState.set(getElectronTheme());
currentThemeState.set(newTheme);
}; };
nativeTheme.on("updated", updateThemeState); nativeTheme.on("updated", updateThemeState);

View File

@ -14,9 +14,7 @@ const cleanUpDeepLinkingInjectable = getInjectable({
return { return {
id: "clean-up-deep-linking", id: "clean-up-deep-linking",
run: () => { run: () => void lensProtocolRouterMain.cleanup(),
lensProtocolRouterMain.cleanup();
},
}; };
}, },

View File

@ -23,6 +23,8 @@ const hideDockForLastClosedWindowInjectable = getInjectable({
if (isEmpty(visibleWindows)) { if (isEmpty(visibleWindows)) {
app.dock?.hide(); app.dock?.hide();
} }
return undefined;
}, },
}; };
}, },

View File

@ -20,6 +20,8 @@ const enforceSingleApplicationInstanceInjectable = getInjectable({
if (!requestSingleInstanceLock()) { if (!requestSingleInstanceLock()) {
exitApp(); exitApp();
} }
return undefined;
}, },
}; };
}, },

View File

@ -18,6 +18,8 @@ const setupApplicationNameInjectable = getInjectable({
id: "setup-application-name", id: "setup-application-name",
run: () => { run: () => {
app.setName(appName); app.setName(appName);
return undefined;
}, },
}; };
}, },

View File

@ -13,15 +13,14 @@ const setupRunnablesAfterWindowIsOpenedInjectable = getInjectable({
instantiate: (di) => { instantiate: (di) => {
const afterWindowIsOpened = runManyFor(di)(afterWindowIsOpenedInjectionToken); const afterWindowIsOpened = runManyFor(di)(afterWindowIsOpenedInjectionToken);
const app = di.inject(electronAppInjectable);
return { return {
id: "setup-runnables-after-window-is-opened", id: "setup-runnables-after-window-is-opened",
run: () => { run: () => {
const app = di.inject(electronAppInjectable); app.on("browser-window-created", () => afterWindowIsOpened);
app.on("browser-window-created", async () => { return undefined;
await afterWindowIsOpened();
});
}, },
}; };
}, },

View File

@ -15,24 +15,16 @@ const setupRunnablesBeforeClosingOfApplicationInjectable = getInjectable({
id: "setup-closing-of-application", id: "setup-closing-of-application",
instantiate: (di) => { instantiate: (di) => {
const runMany = runManySyncFor(di); const runManySync = runManySyncFor(di);
const runRunnablesBeforeQuitOfFrontEnd = runManySync(beforeQuitOfFrontEndInjectionToken);
const runRunnablesBeforeQuitOfFrontEnd = runMany( const runRunnablesBeforeQuitOfBackEnd = runManySync(beforeQuitOfBackEndInjectionToken);
beforeQuitOfFrontEndInjectionToken, const app = di.inject(electronAppInjectable);
); const isIntegrationTesting = di.inject(isIntegrationTestingInjectable);
const autoUpdater = di.inject(autoUpdaterInjectable);
const runRunnablesBeforeQuitOfBackEnd = runMany(
beforeQuitOfBackEndInjectionToken,
);
return { return {
id: "setup-closing-of-application", id: "setup-closing-of-application",
run: () => { run: () => {
const app = di.inject(electronAppInjectable);
const isIntegrationTesting = di.inject(isIntegrationTestingInjectable);
const autoUpdater = di.inject(autoUpdaterInjectable);
let isAutoUpdating = false; let isAutoUpdating = false;
autoUpdater.on("before-quit-for-update", () => { autoUpdater.on("before-quit-for-update", () => {
@ -51,6 +43,8 @@ const setupRunnablesBeforeClosingOfApplicationInjectable = getInjectable({
event.preventDefault(); event.preventDefault();
} }
}); });
return undefined;
}, },
}; };
}, },

View File

@ -5,7 +5,6 @@
import { getInjectionToken } from "@ogre-tools/injectable"; import { getInjectionToken } from "@ogre-tools/injectable";
import type { RunnableSync } from "../../../common/runnable/run-many-sync-for"; import type { RunnableSync } from "../../../common/runnable/run-many-sync-for";
export const beforeElectronIsReadyInjectionToken = export const beforeElectronIsReadyInjectionToken = getInjectionToken<RunnableSync>({
getInjectionToken<RunnableSync>({ id: "before-electron-is-ready",
id: "before-electron-is-ready", });
});

View File

@ -5,7 +5,6 @@
import { getInjectionToken } from "@ogre-tools/injectable"; import { getInjectionToken } from "@ogre-tools/injectable";
import type { RunnableSync } from "../../../common/runnable/run-many-sync-for"; import type { RunnableSync } from "../../../common/runnable/run-many-sync-for";
export const beforeQuitOfBackEndInjectionToken = export const beforeQuitOfBackEndInjectionToken = getInjectionToken<RunnableSync>({
getInjectionToken<RunnableSync>({ id: "before-quit-of-back-end",
id: "before-quit-of-back-end", });
});

View File

@ -5,7 +5,6 @@
import { getInjectionToken } from "@ogre-tools/injectable"; import { getInjectionToken } from "@ogre-tools/injectable";
import type { RunnableSync } from "../../../common/runnable/run-many-sync-for"; import type { RunnableSync } from "../../../common/runnable/run-many-sync-for";
export const beforeQuitOfFrontEndInjectionToken = export const beforeQuitOfFrontEndInjectionToken = getInjectionToken<RunnableSync>({
getInjectionToken<RunnableSync>({ id: "before-quit-of-front-end",
id: "before-quit-of-front-end", });
});

View File

@ -11,9 +11,7 @@ const cleanUpShellSessionsInjectable = getInjectable({
instantiate: () => ({ instantiate: () => ({
id: "clean-up-shell-sessions", id: "clean-up-shell-sessions",
run: () => { run: () => void ShellSession.cleanup(),
ShellSession.cleanup();
},
}), }),
injectionToken: beforeQuitOfBackEndInjectionToken, injectionToken: beforeQuitOfBackEndInjectionToken,

View File

@ -16,6 +16,8 @@ const emitCloseToEventBusInjectable = getInjectable({
id: "emit-close-to-event-bus", id: "emit-close-to-event-bus",
run: () => { run: () => {
emitAppEvent({ name: "app", action: "close" }); emitAppEvent({ name: "app", action: "close" });
return undefined;
}, },
}; };
}, },

View File

@ -20,6 +20,8 @@ const flagRendererAsNotLoadedInjectable = getInjectable({
// Todo: remove this kludge which enables out-of-place temporal dependency. // Todo: remove this kludge which enables out-of-place temporal dependency.
lensProtocolRouterMain.rendererLoaded = false; lensProtocolRouterMain.rendererLoaded = false;
}); });
return undefined;
}, },
}; };
}, },

View File

@ -14,9 +14,7 @@ const stopKubeConfigSyncInjectable = getInjectable({
return { return {
id: "stop-kube-config-sync", id: "stop-kube-config-sync",
run: () => { run: () => void kubeConfigSyncManager.stopSync(),
kubeConfigSyncManager.stopSync();
},
}; };
}, },

View File

@ -15,7 +15,7 @@ const setupSentryInjectable = getInjectable({
return { return {
id: "setup-sentry", id: "setup-sentry",
run: () => initializeSentryReportingWith(initializeSentryOnMain), run: () => void initializeSentryReportingWith(initializeSentryOnMain),
}; };
}, },
injectionToken: beforeElectronIsReadyInjectionToken, injectionToken: beforeElectronIsReadyInjectionToken,

View File

@ -20,6 +20,8 @@ const setupHardwareAccelerationInjectable = getInjectable({
if (hardwareAccelerationShouldBeDisabled) { if (hardwareAccelerationShouldBeDisabled) {
disableHardwareAcceleration(); disableHardwareAcceleration();
} }
return undefined;
}, },
}; };
}, },

View File

@ -16,6 +16,8 @@ const setupImmerInjectable = getInjectable({
// Required in `utils/storage-helper.ts` // Required in `utils/storage-helper.ts`
Immer.setAutoFreeze(false); // allow to merge mobx observables Immer.setAutoFreeze(false); // allow to merge mobx observables
Immer.enableMapSet(); // allow to merge maps and sets Immer.enableMapSet(); // allow to merge maps and sets
return undefined;
}, },
}), }),

View File

@ -21,6 +21,8 @@ const setupMobxInjectable = getInjectable({
// reactionRequiresObservable: true, // reactionRequiresObservable: true,
// observableRequiresReaction: true, // observableRequiresReaction: true,
}); });
return undefined;
}, },
}), }),

View File

@ -34,6 +34,8 @@ const setupProxyEnvInjectable = getInjectable({
if (getCommandLineSwitch("proxy-server") !== "") { if (getCommandLineSwitch("proxy-server") !== "") {
process.env.HTTPS_PROXY = getCommandLineSwitch("proxy-server"); process.env.HTTPS_PROXY = getCommandLineSwitch("proxy-server");
} }
return undefined;
}, },
}; };
}, },

View File

@ -16,13 +16,13 @@ const stopClusterManagerInjectable = getInjectable({
id: "stop-cluster-manager", id: "stop-cluster-manager",
run: () => { run: () => {
clusterManager.stop(); clusterManager.stop();
return undefined;
}, },
}; };
}, },
injectionToken: beforeQuitOfFrontEndInjectionToken, injectionToken: beforeQuitOfFrontEndInjectionToken,
causesSideEffects: true,
}); });
export default stopClusterManagerInjectable; export default stopClusterManagerInjectable;

View File

@ -14,9 +14,7 @@ const stopBroadcastingThemeChangeInjectable = getInjectable({
return { return {
id: "stop-broadcasting-theme-change", id: "stop-broadcasting-theme-change",
run: async () => { run: () => void broadcastThemeChange.stop(),
await broadcastThemeChange.stop();
},
}; };
}, },

View File

@ -14,9 +14,7 @@ const stopSyncingThemeFromOperatingSystemInjectable = getInjectable({
return { return {
id: "stop-syncing-theme-from-operating-system", id: "stop-syncing-theme-from-operating-system",
run: async () => { run: () => void syncTheme.stop(),
await syncTheme.stop();
},
}; };
}, },

View File

@ -15,10 +15,7 @@ const stopTrayInjectable = getInjectable({
return { return {
id: "stop-tray", id: "stop-tray",
run: () => { run: () => void electronTray.stop(),
electronTray.stop();
},
runAfter: di.inject(stopReactiveTrayMenuItemsInjectable), runAfter: di.inject(stopReactiveTrayMenuItemsInjectable),
}; };
}, },

View File

@ -14,9 +14,7 @@ const stopReactiveTrayMenuIconInjectable = getInjectable({
return { return {
id: "stop-reactive-tray-menu-icon", id: "stop-reactive-tray-menu-icon",
run: async () => { run: () => void reactiveTrayMenuIcon.stop(),
await reactiveTrayMenuIcon.stop();
},
}; };
}, },

View File

@ -19,10 +19,8 @@ const reactiveTrayMenuItemsInjectable = getInjectable({
return getStartableStoppable("reactive-tray-menu-items", () => return getStartableStoppable("reactive-tray-menu-items", () =>
reaction( reaction(
(): MinimalTrayMenuItem[] => reactiveItems.get().map(toNonReactiveItem), () => reactiveItems.get().map(toNonReactiveItem),
(nonReactiveItems) => electronTray.setMenuItems(nonReactiveItems), (nonReactiveItems) => electronTray.setMenuItems(nonReactiveItems),
{ {
fireImmediately: true, fireImmediately: true,
}, },

View File

@ -14,9 +14,7 @@ const stopReactiveTrayMenuItemsInjectable = getInjectable({
return { return {
id: "stop-reactive-tray-menu-items", id: "stop-reactive-tray-menu-items",
run: async () => { run: () => void reactiveTrayMenuItems.stop(),
await reactiveTrayMenuItems.stop();
},
}; };
}, },

View File

@ -16,9 +16,9 @@ const startListeningOnChannelsInjectable = getInjectable({
return { return {
id: "start-listening-on-channels-main", id: "start-listening-on-channels-main",
run: async () => { run: () => {
await listeningOnMessageChannels.start(); listeningOnMessageChannels.start();
await listeningOnRequestChannels.start(); listeningOnRequestChannels.start();
}, },
}; };
}, },