Consolidate more startables and stoppables

Co-authored-by: Janne Savolainen <janne.savolainen@live.fi>

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>
This commit is contained in:
Iku-tursoandJanne Savolainen authored and Janne Savolainen committed 2022-05-11 08:24:21 +03:00
1 parent 960d76b0f5
commit f2d52066f3
7 files changed
+49 -59

No files matched your search

@@ -5,6 +5,7 @@
import { getInjectable } from "@ogre-tools/injectable";
import catalogEntityRegistryInjectable from "../catalog/catalog-entity-registry.injectable";
import { startCatalogSyncToRenderer } from "../catalog-pusher";
import { getStartableStoppable } from "../../common/utils/get-startable-stoppable";
const catalogSyncToRendererInjectable = getInjectable({
id: "catalog-sync-to-renderer",
@@ -12,15 +13,9 @@ const catalogSyncToRendererInjectable = getInjectable({
instantiate: (di) => {
const catalogEntityRegistry = di.inject(catalogEntityRegistryInjectable);
let disposer: () => void;
return {
start: () => {
disposer = startCatalogSyncToRenderer(catalogEntityRegistry);
},
stop: () => disposer?.(),
};
return getStartableStoppable(() =>
startCatalogSyncToRenderer(catalogEntityRegistry),
);
},
});
@@ -6,8 +6,8 @@ import { getInjectable } from "@ogre-tools/injectable";
import { onRootFrameRenderInjectionToken } from "../start-main-application/on-root-frame-render/on-root-frame-render-injection-token";
import catalogSyncToRendererInjectable from "./catalog-sync-to-renderer.injectable";
const startCatalogSyncWhenRootFrameIsRenderedInjectable = getInjectable({
id: "start-catalog-sync-when-root-frame-is-rendered",
const startCatalogSyncInjectable = getInjectable({
id: "start-catalog-sync",
instantiate: (di) => {
const catalogSyncToRenderer = di.inject(catalogSyncToRendererInjectable);
@@ -22,4 +22,4 @@ const startCatalogSyncWhenRootFrameIsRenderedInjectable = getInjectable({
injectionToken: onRootFrameRenderInjectionToken,
});
export default startCatalogSyncWhenRootFrameIsRenderedInjectable;
export default startCatalogSyncInjectable;
@@ -6,8 +6,8 @@ import { getInjectable } from "@ogre-tools/injectable";
import catalogSyncToRendererInjectable from "./catalog-sync-to-renderer.injectable";
import { onApplicationSoftQuitInjectionToken } from "../start-main-application/on-application-soft-quit/on-application-soft-quit-injection-token";
const stopCatalogSyncWhenApplicationIsClosedInjectable = getInjectable({
id: "stop-catalog-sync-when-application-is-closed",
const stopCatalogSyncInjectable = getInjectable({
id: "stop-catalog-sync",
instantiate: (di) => {
const catalogSyncToRenderer = di.inject(catalogSyncToRendererInjectable);
@@ -22,4 +22,4 @@ const stopCatalogSyncWhenApplicationIsClosedInjectable = getInjectable({
injectionToken: onApplicationSoftQuitInjectionToken,
});
export default stopCatalogSyncWhenApplicationIsClosedInjectable;
export default stopCatalogSyncInjectable;
@@ -1,30 +0,0 @@
/**
* 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 { autorun } from "mobx";
import { buildMenu } from "./menu";
import applicationMenuItemsInjectable from "./application-menu-items.injectable";
const applicationMenuInitializerInjectable = getInjectable({
id: "application-menu-initializer",
instantiate: (di) => {
let disposer: () => void;
return {
start: () => {
const applicationMenuItems = di.inject(applicationMenuItemsInjectable);
disposer = autorun(() => buildMenu(applicationMenuItems.get()), {
delay: 100,
});
},
stop: () => disposer?.(),
};
},
});
export default applicationMenuInitializerInjectable;
@@ -0,0 +1,25 @@
/**
* 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 { autorun } from "mobx";
import { buildMenu } from "./menu";
import applicationMenuItemsInjectable from "./application-menu-items.injectable";
import { getStartableStoppable } from "../../common/utils/get-startable-stoppable";
const applicationMenuInjectable = getInjectable({
id: "application-menu",
instantiate: (di) => {
const applicationMenuItems = di.inject(applicationMenuItemsInjectable);
return getStartableStoppable(() =>
autorun(() => buildMenu(applicationMenuItems.get()), {
delay: 100,
}),
);
},
});
export default applicationMenuInjectable;
@@ -4,19 +4,19 @@
*/
import { getInjectable } from "@ogre-tools/injectable";
import { afterApplicationIsReadyInjectionToken } from "../start-main-application/after-application-is-ready/after-application-is-ready-injection-token";
import applicationMenuInitializerInjectable from "./application-menu-initializer.injectable";
import applicationMenuInjectable from "./application-menu.injectable";
const setupApplicationMenuWhenApplicationIsReadyInjectable = getInjectable({
id: "setup-application-menu-when-application-is-ready",
const startApplicationMenuInjectable = getInjectable({
id: "start-application-menu",
instantiate: (di) => {
const initializeApplicationMenu = di.inject(
applicationMenuInitializerInjectable,
const applicationMenu = di.inject(
applicationMenuInjectable,
);
return {
run: () => {
initializeApplicationMenu.start();
applicationMenu.start();
},
};
},
@@ -24,4 +24,4 @@ const setupApplicationMenuWhenApplicationIsReadyInjectable = getInjectable({
injectionToken: afterApplicationIsReadyInjectionToken,
});
export default setupApplicationMenuWhenApplicationIsReadyInjectable;
export default startApplicationMenuInjectable;
@@ -3,20 +3,20 @@
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
import applicationMenuInitializerInjectable from "./application-menu-initializer.injectable";
import applicationMenuInjectable from "./application-menu.injectable";
import { onApplicationHardQuitInjectionToken } from "../start-main-application/on-application-hard-quit/on-application-hard-quit-injection-token";
const cleanupApplicationMenuWhenApplicationIsQuitInjectable = getInjectable({
id: "cleanup-application-menu-when-application-is-quit",
const stopApplicationMenuInjectable = getInjectable({
id: "stop-application-menu",
instantiate: (di) => {
const initializeApplicationMenu = di.inject(
applicationMenuInitializerInjectable,
const applicationMenu = di.inject(
applicationMenuInjectable,
);
return {
run: () => {
initializeApplicationMenu.stop();
applicationMenu.stop();
},
};
},
@@ -24,4 +24,4 @@ const cleanupApplicationMenuWhenApplicationIsQuitInjectable = getInjectable({
injectionToken: onApplicationHardQuitInjectionToken,
});
export default cleanupApplicationMenuWhenApplicationIsQuitInjectable;
export default stopApplicationMenuInjectable;