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

Move files around to fix circular dependencies and fix typing issues

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton 2022-11-01 10:04:12 -04:00
parent e5fa99414b
commit 6ec38835d3
12 changed files with 51 additions and 30 deletions

View File

@ -8,6 +8,7 @@ import asyncFn from "@async-fn/jest";
import type { DiContainer, Injectable } from "@ogre-tools/injectable";
import { runInAction } from "mobx";
import { getDiForUnitTesting } from "../../main/getDiForUnitTesting";
import type { Runnable } from "../runnable/run-many-for";
import type { InitializableState } from "./create";
import { createInitializableState } from "./create";
@ -20,11 +21,15 @@ describe("InitializableState tests", () => {
describe("when created", () => {
let stateInjectable: Injectable<InitializableState<number>, unknown, void>;
let initStateInjectable: Injectable<Runnable<void>, Runnable<void>, void>;
let initMock: AsyncFnMock<() => number>;
beforeEach(() => {
initMock = asyncFn();
({ value: stateInjectable } = createInitializableState({
({
value: stateInjectable,
initializer: initStateInjectable,
} = createInitializableState({
id: "my-state",
init: initMock,
when: null as any,
@ -32,6 +37,7 @@ describe("InitializableState tests", () => {
runInAction(() => {
di.register(stateInjectable);
di.register(initStateInjectable);
});
});
@ -47,8 +53,10 @@ describe("InitializableState tests", () => {
});
describe("when init is called", () => {
beforeEach(() => {
state.init();
beforeEach(async () => {
const initState = di.inject(initStateInjectable);
await initState.run();
});
it("should call provided initialization function", () => {
@ -69,7 +77,9 @@ describe("InitializableState tests", () => {
});
it("when init is called again, throws", async () => {
await expect(() => state.init()).rejects.toThrow("Cannot initialize InitializableState(my-state) more than once");
const initState = di.inject(initStateInjectable);
await expect(() => initState.run()).rejects.toThrow("Cannot initialize InitializableState(my-state) more than once");
});
});
});

View File

@ -0,0 +1,10 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import type { RequestChannel } from "../../utils/channel/request-channel-listener-injection-token";
export const buildVersionChannel: RequestChannel<void, string> = {
id: "build-version",
};

View File

@ -3,21 +3,11 @@
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectionToken } from "@ogre-tools/injectable";
import { SemVer } from "semver";
import { initializeBuildVersionOnMainInjectable } from "../../main/vars/build-version/build-version.injectable";
import { initializeBuildVersionOnRendererInjectable } from "../../renderer/vars/build-version.injectable";
import type { InitializableState } from "../initializable-state/create";
import { createDependentInitializableState } from "../initializable-state/create-dependent";
import type { RequestChannel } from "../utils/channel/request-channel-listener-injection-token";
export const buildVersionInjectionToken = getInjectionToken<InitializableState<string>>({
id: "build-version-token",
});
export const buildVersionChannel: RequestChannel<void, string> = {
id: "build-version",
};
import { initializeBuildVersionOnMainInjectable } from "../../../main/vars/build-version/build-version.injectable";
import { initializeBuildVersionOnRendererInjectable } from "../../../renderer/vars/build-version.injectable";
import { createDependentInitializableState } from "../../initializable-state/create-dependent";
import { buildVersionInjectionToken } from "./token";
const {
value: buildSemanticVersionInjectable,

View File

@ -0,0 +1,11 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectionToken } from "@ogre-tools/injectable";
import type { InitializableState } from "../../initializable-state/create";
export const buildVersionInjectionToken = getInjectionToken<InitializableState<string>>({
id: "build-version-token",
});

View File

@ -2,7 +2,7 @@
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import buildSemanticVersionInjectable, { initBuildSemanticVersionOnMainInjectable, initBuildSemanticVersionOnRendererInjectable } from "./build-semantic-version.injectable";
import buildSemanticVersionInjectable, { initBuildSemanticVersionOnMainInjectable, initBuildSemanticVersionOnRendererInjectable } from "./build-version/semantic-version.injectable";
import type { ReleaseChannel } from "../../features/application-update/common/update-channels";
import { createDependentInitializableState } from "../initializable-state/create-dependent";

View File

@ -14,7 +14,7 @@ import getEnabledExtensionsInjectable from "./get-enabled-extensions/get-enabled
import type { UserPreferenceExtensionItems } from "./user-preferences";
import { Preferences } from "./user-preferences";
import { slackUrl, issuesTrackerUrl } from "../../common/vars";
import { buildVersionInjectionToken } from "../../common/vars/build-semantic-version.injectable";
import { buildVersionInjectionToken } from "../../common/vars/build-version/token";
export interface AppExtensionItems {
readonly Preferences: UserPreferenceExtensionItems;

View File

@ -2,7 +2,7 @@
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { buildVersionChannel } from "../../common/vars/build-semantic-version.injectable";
import { buildVersionChannel } from "../../common/vars/build-version/channel";
import { getRequestChannelListenerInjectable } from "../utils/channel/channel-listeners/listener-tokens";
import buildVersionInjectable from "../vars/build-version/build-version.injectable";

View File

@ -11,8 +11,7 @@ import lensProxyPortInjectable from "../../lens-proxy/lens-proxy-port.injectable
import isWindowsInjectable from "../../../common/vars/is-windows.injectable";
import showErrorPopupInjectable from "../../electron-app/features/show-error-popup.injectable";
import { beforeApplicationIsLoadingInjectionToken } from "../runnable-tokens/before-application-is-loading-injection-token";
import buildVersionInjectable from "../../vars/build-version/build-version.injectable";
import initializeBuildVersionInjectable from "../../vars/build-version/init.injectable";
import buildVersionInjectable, { initializeBuildVersionOnMainInjectable } from "../../vars/build-version/build-version.injectable";
const setupLensProxyInjectable = getInjectable({
id: "setup-lens-proxy",
@ -70,7 +69,7 @@ const setupLensProxyInjectable = getInjectable({
return exitApp();
}
},
runAfter: di.inject(initializeBuildVersionInjectable),
runAfter: di.inject(initializeBuildVersionOnMainInjectable),
};
},

View File

@ -6,7 +6,7 @@ import { getInjectable } from "@ogre-tools/injectable";
import userStoreFileNameMigrationInjectable from "../../common/user-store/file-name-migration.injectable";
import userStoreInjectable from "../../common/user-store/user-store.injectable";
import { beforeApplicationIsLoadingInjectionToken } from "../start-main-application/runnable-tokens/before-application-is-loading-injection-token";
import initializeBuildVersionInjectable from "../vars/build-version/init.injectable";
import { initializeBuildVersionOnMainInjectable } from "../vars/build-version/build-version.injectable";
const initUserStoreInjectable = getInjectable({
id: "init-user-store",
@ -20,7 +20,7 @@ const initUserStoreInjectable = getInjectable({
await userStoreFileNameMigration();
userStore.load();
},
runAfter: di.inject(initializeBuildVersionInjectable),
runAfter: di.inject(initializeBuildVersionOnMainInjectable),
};
},
injectionToken: beforeApplicationIsLoadingInjectionToken,

View File

@ -3,7 +3,7 @@
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { createInitializableState } from "../../../common/initializable-state/create";
import { buildVersionInjectionToken } from "../../../common/vars/build-semantic-version.injectable";
import { buildVersionInjectionToken } from "../../../common/vars/build-version/token";
import { beforeApplicationIsLoadingInjectionToken } from "../../start-main-application/runnable-tokens/before-application-is-loading-injection-token";
import getBuildVersionInjectable from "./get-build-version.injectable";

View File

@ -5,7 +5,7 @@
import { getInjectable } from "@ogre-tools/injectable";
import userStoreInjectable from "../../common/user-store/user-store.injectable";
import { beforeFrameStartsInjectionToken } from "../before-frame-starts/before-frame-starts-injection-token";
import initializeBuildVersionInjectable from "../vars/build-version/init.injectable";
import { initializeBuildVersionOnRendererInjectable } from "../vars/build-version.injectable";
const initUserStoreInjectable = getInjectable({
id: "init-user-store",
@ -15,7 +15,7 @@ const initUserStoreInjectable = getInjectable({
return {
id: "init-user-store",
run: () => userStore.load(),
runAfter: di.inject(initializeBuildVersionInjectable),
runAfter: di.inject(initializeBuildVersionOnRendererInjectable),
};
},
injectionToken: beforeFrameStartsInjectionToken,

View File

@ -4,7 +4,8 @@
*/
import { createInitializableState } from "../../common/initializable-state/create";
import { requestFromChannelInjectionToken } from "../../common/utils/channel/request-from-channel-injection-token";
import { buildVersionChannel, buildVersionInjectionToken } from "../../common/vars/build-semantic-version.injectable";
import { buildVersionChannel } from "../../common/vars/build-version/channel";
import { buildVersionInjectionToken } from "../../common/vars/build-version/token";
import { beforeFrameStartsInjectionToken } from "../before-frame-starts/before-frame-starts-injection-token";
const {