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:
parent
e5fa99414b
commit
6ec38835d3
@ -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");
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
10
src/common/vars/build-version/channel.ts
Normal file
10
src/common/vars/build-version/channel.ts
Normal 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",
|
||||
};
|
||||
@ -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,
|
||||
11
src/common/vars/build-version/token.ts
Normal file
11
src/common/vars/build-version/token.ts
Normal 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",
|
||||
});
|
||||
@ -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";
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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";
|
||||
|
||||
|
||||
@ -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),
|
||||
};
|
||||
},
|
||||
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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";
|
||||
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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 {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user