mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Introduce and use createDependantInitializableState
- Replaces uses of createLazyInitializableState as it has an explicit initialization order Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
parent
89ada69cf4
commit
a3639e66bf
@ -2,11 +2,19 @@
|
|||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
|
import { initAppPathsOnMainInjectable } from "../../main/app-paths/impl.injectable";
|
||||||
|
import { initAppPathsOnRendererInjectable } from "../../renderer/app-paths/impl.injectable";
|
||||||
import directoryForUserDataInjectable from "./directory-for-user-data.injectable";
|
import directoryForUserDataInjectable from "./directory-for-user-data.injectable";
|
||||||
import { createLazyInitializableState } from "../initializable-state/create-lazy";
|
|
||||||
import joinPathsInjectable from "../path/join-paths.injectable";
|
import joinPathsInjectable from "../path/join-paths.injectable";
|
||||||
|
import { createDependentInitializableState } from "../initializable-state/create-dependent";
|
||||||
|
|
||||||
const directoryForBinariesInjectable = createLazyInitializableState({
|
const {
|
||||||
|
value: directoryForBinariesInjectable,
|
||||||
|
initializers: [
|
||||||
|
initDirectoryForBinariesOnMainInjectable,
|
||||||
|
initDirectoryForBinariesOnRendererInjectable,
|
||||||
|
],
|
||||||
|
} = createDependentInitializableState({
|
||||||
id: "directory-for-binaries",
|
id: "directory-for-binaries",
|
||||||
init: (di) => {
|
init: (di) => {
|
||||||
const joinPaths = di.inject(joinPathsInjectable);
|
const joinPaths = di.inject(joinPathsInjectable);
|
||||||
@ -14,6 +22,12 @@ const directoryForBinariesInjectable = createLazyInitializableState({
|
|||||||
|
|
||||||
return joinPaths(directoryForUserData.get(), "binaries");
|
return joinPaths(directoryForUserData.get(), "binaries");
|
||||||
},
|
},
|
||||||
|
initAfter: [initAppPathsOnMainInjectable, initAppPathsOnRendererInjectable],
|
||||||
});
|
});
|
||||||
|
|
||||||
|
export {
|
||||||
|
initDirectoryForBinariesOnMainInjectable,
|
||||||
|
initDirectoryForBinariesOnRendererInjectable,
|
||||||
|
};
|
||||||
|
|
||||||
export default directoryForBinariesInjectable;
|
export default directoryForBinariesInjectable;
|
||||||
|
|||||||
@ -2,12 +2,26 @@
|
|||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
import { createLazyInitializableState } from "../initializable-state/create-lazy";
|
import { initAppPathsOnMainInjectable } from "../../main/app-paths/impl.injectable";
|
||||||
|
import { initAppPathsOnRendererInjectable } from "../../renderer/app-paths/impl.injectable";
|
||||||
|
import { createDependentInitializableState } from "../initializable-state/create-dependent";
|
||||||
import { appPathsInjectionToken } from "./token";
|
import { appPathsInjectionToken } from "./token";
|
||||||
|
|
||||||
const directoryForDownloadsInjectable = createLazyInitializableState({
|
const {
|
||||||
|
value: directoryForDownloadsInjectable,
|
||||||
|
initializers: [
|
||||||
|
initDirectoryForDownloadsOnMainInjectable,
|
||||||
|
initDirectoryForDownloadsOnRendererInjectable,
|
||||||
|
],
|
||||||
|
} = createDependentInitializableState({
|
||||||
id: "directory-for-downloads",
|
id: "directory-for-downloads",
|
||||||
init: (di) => di.inject(appPathsInjectionToken).get().downloads,
|
init: (di) => di.inject(appPathsInjectionToken).get().downloads,
|
||||||
|
initAfter: [initAppPathsOnMainInjectable, initAppPathsOnRendererInjectable],
|
||||||
});
|
});
|
||||||
|
|
||||||
|
export {
|
||||||
|
initDirectoryForDownloadsOnMainInjectable,
|
||||||
|
initDirectoryForDownloadsOnRendererInjectable,
|
||||||
|
};
|
||||||
|
|
||||||
export default directoryForDownloadsInjectable;
|
export default directoryForDownloadsInjectable;
|
||||||
|
|||||||
@ -2,12 +2,26 @@
|
|||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
import { createLazyInitializableState } from "../initializable-state/create-lazy";
|
import { initAppPathsOnMainInjectable } from "../../main/app-paths/impl.injectable";
|
||||||
|
import { initAppPathsOnRendererInjectable } from "../../renderer/app-paths/impl.injectable";
|
||||||
|
import { createDependentInitializableState } from "../initializable-state/create-dependent";
|
||||||
import { appPathsInjectionToken } from "./token";
|
import { appPathsInjectionToken } from "./token";
|
||||||
|
|
||||||
const directoryForExesInjectable = createLazyInitializableState({
|
const {
|
||||||
|
value: directoryForExesInjectable,
|
||||||
|
initializers: [
|
||||||
|
initDirectoryForExesOnMainInjectable,
|
||||||
|
initDirectoryForExesOnRendererInjectable,
|
||||||
|
],
|
||||||
|
} = createDependentInitializableState({
|
||||||
id: "directory-for-exes",
|
id: "directory-for-exes",
|
||||||
init: (di) => di.inject(appPathsInjectionToken).get().exe,
|
init: (di) => di.inject(appPathsInjectionToken).get().exe,
|
||||||
|
initAfter: [initAppPathsOnMainInjectable, initAppPathsOnRendererInjectable],
|
||||||
});
|
});
|
||||||
|
|
||||||
|
export {
|
||||||
|
initDirectoryForExesOnMainInjectable,
|
||||||
|
initDirectoryForExesOnRendererInjectable,
|
||||||
|
};
|
||||||
|
|
||||||
export default directoryForExesInjectable;
|
export default directoryForExesInjectable;
|
||||||
|
|||||||
@ -2,19 +2,33 @@
|
|||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
import directoryForUserDataInjectable from "./directory-for-user-data.injectable";
|
import directoryForUserDataInjectable, { initDirectoryForUserDataOnMainInjectable, initDirectoryForUserDataOnRendererInjectable } from "./directory-for-user-data.injectable";
|
||||||
import joinPathsInjectable from "../path/join-paths.injectable";
|
import joinPathsInjectable from "../path/join-paths.injectable";
|
||||||
import { createLazyInitializableState } from "../initializable-state/create-lazy";
|
import { createDependentInitializableState } from "../initializable-state/create-dependent";
|
||||||
|
|
||||||
const directoryForKubeConfigsInjectable = createLazyInitializableState({
|
const {
|
||||||
|
value: directoryForKubeConfigsInjectable,
|
||||||
|
initializers: [
|
||||||
|
initDirectoryForKubeConfigsOnMainInjectable,
|
||||||
|
initDirectoryForKubeConfigsOnRendererInjectable,
|
||||||
|
],
|
||||||
|
} = createDependentInitializableState({
|
||||||
id: "directory-for-kube-configs",
|
id: "directory-for-kube-configs",
|
||||||
|
|
||||||
init: (di) => {
|
init: (di) => {
|
||||||
const joinPaths = di.inject(joinPathsInjectable);
|
const joinPaths = di.inject(joinPathsInjectable);
|
||||||
const directoryForUserData = di.inject(directoryForUserDataInjectable);
|
const directoryForUserData = di.inject(directoryForUserDataInjectable);
|
||||||
|
|
||||||
return joinPaths(directoryForUserData.get(), "kubeconfigs");
|
return joinPaths(directoryForUserData.get(), "kubeconfigs");
|
||||||
},
|
},
|
||||||
|
initAfter: [
|
||||||
|
initDirectoryForUserDataOnMainInjectable,
|
||||||
|
initDirectoryForUserDataOnRendererInjectable,
|
||||||
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
|
export {
|
||||||
|
initDirectoryForKubeConfigsOnMainInjectable,
|
||||||
|
initDirectoryForKubeConfigsOnRendererInjectable,
|
||||||
|
};
|
||||||
|
|
||||||
export default directoryForKubeConfigsInjectable;
|
export default directoryForKubeConfigsInjectable;
|
||||||
|
|||||||
@ -2,11 +2,17 @@
|
|||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
import directoryForBinariesInjectable from "./directory-for-binaries.injectable";
|
import directoryForBinariesInjectable, { initDirectoryForBinariesOnMainInjectable, initDirectoryForBinariesOnRendererInjectable } from "./directory-for-binaries.injectable";
|
||||||
import { createLazyInitializableState } from "../initializable-state/create-lazy";
|
|
||||||
import joinPathsInjectable from "../path/join-paths.injectable";
|
import joinPathsInjectable from "../path/join-paths.injectable";
|
||||||
|
import { createDependentInitializableState } from "../initializable-state/create-dependent";
|
||||||
|
|
||||||
const directoryForKubectlBinariesInjectable = createLazyInitializableState({
|
const {
|
||||||
|
value: directoryForKubectlBinariesInjectable,
|
||||||
|
initializers: [
|
||||||
|
initDirectoryForKubectlBinariesOnMainInjectable,
|
||||||
|
initDirectoryForKubectlBinariesOnRendererInjectable,
|
||||||
|
],
|
||||||
|
} = createDependentInitializableState({
|
||||||
id: "directory-for-kubectl-binaries",
|
id: "directory-for-kubectl-binaries",
|
||||||
init: (di) => {
|
init: (di) => {
|
||||||
const joinPaths = di.inject(joinPathsInjectable);
|
const joinPaths = di.inject(joinPathsInjectable);
|
||||||
@ -14,6 +20,15 @@ const directoryForKubectlBinariesInjectable = createLazyInitializableState({
|
|||||||
|
|
||||||
return joinPaths(directoryForBinaries.get(), "kubectl");
|
return joinPaths(directoryForBinaries.get(), "kubectl");
|
||||||
},
|
},
|
||||||
|
initAfter: [
|
||||||
|
initDirectoryForBinariesOnMainInjectable,
|
||||||
|
initDirectoryForBinariesOnRendererInjectable,
|
||||||
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
|
export {
|
||||||
|
initDirectoryForKubectlBinariesOnMainInjectable,
|
||||||
|
initDirectoryForKubectlBinariesOnRendererInjectable,
|
||||||
|
};
|
||||||
|
|
||||||
export default directoryForKubectlBinariesInjectable;
|
export default directoryForKubectlBinariesInjectable;
|
||||||
|
|||||||
@ -2,12 +2,26 @@
|
|||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
import { createLazyInitializableState } from "../initializable-state/create-lazy";
|
import { initAppPathsOnMainInjectable } from "../../main/app-paths/impl.injectable";
|
||||||
|
import { initAppPathsOnRendererInjectable } from "../../renderer/app-paths/impl.injectable";
|
||||||
|
import { createDependentInitializableState } from "../initializable-state/create-dependent";
|
||||||
import { appPathsInjectionToken } from "./token";
|
import { appPathsInjectionToken } from "./token";
|
||||||
|
|
||||||
const directoryForTempInjectable = createLazyInitializableState({
|
const {
|
||||||
|
value: directoryForTempInjectable,
|
||||||
|
initializers: [
|
||||||
|
initDirectoryForTempOnMainInjectable,
|
||||||
|
initDirectoryForTempOnRendererInjectable,
|
||||||
|
],
|
||||||
|
} = createDependentInitializableState({
|
||||||
id: "directory-for-temp",
|
id: "directory-for-temp",
|
||||||
init: (di) => di.inject(appPathsInjectionToken).get().temp,
|
init: (di) => di.inject(appPathsInjectionToken).get().temp,
|
||||||
|
initAfter: [initAppPathsOnMainInjectable, initAppPathsOnRendererInjectable],
|
||||||
});
|
});
|
||||||
|
|
||||||
|
export {
|
||||||
|
initDirectoryForTempOnMainInjectable,
|
||||||
|
initDirectoryForTempOnRendererInjectable,
|
||||||
|
};
|
||||||
|
|
||||||
export default directoryForTempInjectable;
|
export default directoryForTempInjectable;
|
||||||
|
|||||||
@ -2,12 +2,26 @@
|
|||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
import { createLazyInitializableState } from "../initializable-state/create-lazy";
|
import { initAppPathsOnMainInjectable } from "../../main/app-paths/impl.injectable";
|
||||||
|
import { initAppPathsOnRendererInjectable } from "../../renderer/app-paths/impl.injectable";
|
||||||
|
import { createDependentInitializableState } from "../initializable-state/create-dependent";
|
||||||
import { appPathsInjectionToken } from "./token";
|
import { appPathsInjectionToken } from "./token";
|
||||||
|
|
||||||
const directoryForUserDataInjectable = createLazyInitializableState({
|
const {
|
||||||
|
value: directoryForUserDataInjectable,
|
||||||
|
initializers: [
|
||||||
|
initDirectoryForUserDataOnMainInjectable,
|
||||||
|
initDirectoryForUserDataOnRendererInjectable,
|
||||||
|
],
|
||||||
|
} = createDependentInitializableState({
|
||||||
id: "directory-for-user-data",
|
id: "directory-for-user-data",
|
||||||
init: (di) => di.inject(appPathsInjectionToken).get().userData,
|
init: (di) => di.inject(appPathsInjectionToken).get().userData,
|
||||||
|
initAfter: [initAppPathsOnMainInjectable, initAppPathsOnRendererInjectable],
|
||||||
});
|
});
|
||||||
|
|
||||||
|
export {
|
||||||
|
initDirectoryForUserDataOnMainInjectable,
|
||||||
|
initDirectoryForUserDataOnRendererInjectable,
|
||||||
|
};
|
||||||
|
|
||||||
export default directoryForUserDataInjectable;
|
export default directoryForUserDataInjectable;
|
||||||
|
|||||||
@ -2,19 +2,33 @@
|
|||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
import directoryForUserDataInjectable from "../app-paths/directory-for-user-data.injectable";
|
import directoryForUserDataInjectable, { initDirectoryForUserDataOnMainInjectable, initDirectoryForUserDataOnRendererInjectable } from "../app-paths/directory-for-user-data.injectable";
|
||||||
import { createLazyInitializableState } from "../initializable-state/create-lazy";
|
import { createDependentInitializableState } from "../initializable-state/create-dependent";
|
||||||
import joinPathsInjectable from "../path/join-paths.injectable";
|
import joinPathsInjectable from "../path/join-paths.injectable";
|
||||||
|
|
||||||
const directoryForLensLocalStorageInjectable = createLazyInitializableState({
|
const {
|
||||||
|
value: directoryForLensLocalStorageInjectable,
|
||||||
|
initializers: [
|
||||||
|
initDirectoryForLensLocalStorageOnMainInjectable,
|
||||||
|
initDirectoryForLensLocalStorageOnRendererInjectable,
|
||||||
|
],
|
||||||
|
} = createDependentInitializableState({
|
||||||
id: "directory-for-lens-local-storage",
|
id: "directory-for-lens-local-storage",
|
||||||
|
|
||||||
init: (di) => {
|
init: (di) => {
|
||||||
const joinPaths = di.inject(joinPathsInjectable);
|
const joinPaths = di.inject(joinPathsInjectable);
|
||||||
const directoryForUserData = di.inject(directoryForUserDataInjectable);
|
const directoryForUserData = di.inject(directoryForUserDataInjectable);
|
||||||
|
|
||||||
return joinPaths(directoryForUserData.get(), "lens-local-storage");
|
return joinPaths(directoryForUserData.get(), "lens-local-storage");
|
||||||
},
|
},
|
||||||
|
initAfter: [
|
||||||
|
initDirectoryForUserDataOnMainInjectable,
|
||||||
|
initDirectoryForUserDataOnRendererInjectable,
|
||||||
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
|
export {
|
||||||
|
initDirectoryForLensLocalStorageOnMainInjectable,
|
||||||
|
initDirectoryForLensLocalStorageOnRendererInjectable,
|
||||||
|
};
|
||||||
|
|
||||||
export default directoryForLensLocalStorageInjectable;
|
export default directoryForLensLocalStorageInjectable;
|
||||||
|
|||||||
80
src/common/initializable-state/create-dependent.ts
Normal file
80
src/common/initializable-state/create-dependent.ts
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import type { DiContainerForInjection, Injectable, InjectionToken } from "@ogre-tools/injectable";
|
||||||
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
|
import type { Runnable } from "../runnable/run-many-for";
|
||||||
|
import type { InitializableState, InitializableStateValue } from "./create";
|
||||||
|
|
||||||
|
export interface CreateDependentInitializableStateArgs<T> {
|
||||||
|
id: string;
|
||||||
|
init: (di: DiContainerForInjection) => Promise<T> | T;
|
||||||
|
injectionToken?: InjectionToken<InitializableState<T>, void>;
|
||||||
|
initAfter: Injectable<Runnable<void>, Runnable<void>, void>[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface CreateDependentInitializableStateResult<T> {
|
||||||
|
value: Injectable<InitializableState<T>, unknown, void>;
|
||||||
|
initializers: Injectable<Runnable<void>, Runnable<void>, void>[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export function createDependentInitializableState<T>(args: CreateDependentInitializableStateArgs<T>): CreateDependentInitializableStateResult<T> {
|
||||||
|
const { id, init, injectionToken, initAfter } = args;
|
||||||
|
|
||||||
|
const valueInjectable = getInjectable({
|
||||||
|
id,
|
||||||
|
instantiate: (di) => {
|
||||||
|
let box: InitializableStateValue<T> = {
|
||||||
|
set: false,
|
||||||
|
};
|
||||||
|
let initCalled = false;
|
||||||
|
|
||||||
|
return {
|
||||||
|
init: async () => {
|
||||||
|
if (initCalled) {
|
||||||
|
throw new Error(`Cannot initialize InitializableState(${id}) more than once`);
|
||||||
|
}
|
||||||
|
|
||||||
|
initCalled = true;
|
||||||
|
box = {
|
||||||
|
set: true,
|
||||||
|
value: await init(di),
|
||||||
|
};
|
||||||
|
},
|
||||||
|
get: () => {
|
||||||
|
if (!initCalled) {
|
||||||
|
throw new Error(`InitializableState(${id}) has not been initialized yet`);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (box.set === false) {
|
||||||
|
throw new Error(`InitializableState(${id}) has not finished initializing`);
|
||||||
|
}
|
||||||
|
|
||||||
|
return box.value;
|
||||||
|
},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
injectionToken,
|
||||||
|
});
|
||||||
|
|
||||||
|
const initializers = initAfter.map(runnableInjectable => getInjectable({
|
||||||
|
id: `initialize-${id}`,
|
||||||
|
instantiate: (di) => {
|
||||||
|
const value = di.inject(valueInjectable);
|
||||||
|
|
||||||
|
return {
|
||||||
|
id: `initialize-${id}`,
|
||||||
|
run: () => value.init(),
|
||||||
|
runAfter: di.inject(runnableInjectable),
|
||||||
|
};
|
||||||
|
},
|
||||||
|
injectionToken: runnableInjectable.injectionToken,
|
||||||
|
}));
|
||||||
|
|
||||||
|
return {
|
||||||
|
value: valueInjectable,
|
||||||
|
initializers,
|
||||||
|
};
|
||||||
|
}
|
||||||
@ -5,8 +5,10 @@
|
|||||||
|
|
||||||
import { getInjectionToken } from "@ogre-tools/injectable";
|
import { getInjectionToken } from "@ogre-tools/injectable";
|
||||||
import { SemVer } from "semver";
|
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 type { InitializableState } from "../initializable-state/create";
|
||||||
import { createLazyInitializableState } from "../initializable-state/create-lazy";
|
import { createDependentInitializableState } from "../initializable-state/create-dependent";
|
||||||
import type { RequestChannel } from "../utils/channel/request-channel-listener-injection-token";
|
import type { RequestChannel } from "../utils/channel/request-channel-listener-injection-token";
|
||||||
|
|
||||||
export const buildVersionInjectionToken = getInjectionToken<InitializableState<string>>({
|
export const buildVersionInjectionToken = getInjectionToken<InitializableState<string>>({
|
||||||
@ -17,14 +19,29 @@ export const buildVersionChannel: RequestChannel<void, string> = {
|
|||||||
id: "build-version",
|
id: "build-version",
|
||||||
};
|
};
|
||||||
|
|
||||||
const buildSemanticVersionInjectable = createLazyInitializableState({
|
const {
|
||||||
|
value: buildSemanticVersionInjectable,
|
||||||
|
initializers: [
|
||||||
|
initBuildSemanticVersionOnMainInjectable,
|
||||||
|
initBuildSemanticVersionOnRendererInjectable,
|
||||||
|
],
|
||||||
|
} = createDependentInitializableState({
|
||||||
id: "build-semantic-version",
|
id: "build-semantic-version",
|
||||||
init: (di) => {
|
init: (di) => {
|
||||||
const buildVersion = di.inject(buildVersionInjectionToken);
|
const buildVersion = di.inject(buildVersionInjectionToken);
|
||||||
|
|
||||||
return new SemVer(buildVersion.get());
|
return new SemVer(buildVersion.get());
|
||||||
},
|
},
|
||||||
|
initAfter: [
|
||||||
|
initializeBuildVersionOnMainInjectable,
|
||||||
|
initializeBuildVersionOnRendererInjectable,
|
||||||
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
|
export {
|
||||||
|
initBuildSemanticVersionOnMainInjectable,
|
||||||
|
initBuildSemanticVersionOnRendererInjectable,
|
||||||
|
};
|
||||||
|
|
||||||
export default buildSemanticVersionInjectable;
|
export default buildSemanticVersionInjectable;
|
||||||
|
|
||||||
|
|||||||
@ -2,11 +2,17 @@
|
|||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
import { createLazyInitializableState } from "../initializable-state/create-lazy";
|
import buildSemanticVersionInjectable, { initBuildSemanticVersionOnMainInjectable, initBuildSemanticVersionOnRendererInjectable } from "./build-semantic-version.injectable";
|
||||||
import buildSemanticVersionInjectable from "./build-semantic-version.injectable";
|
|
||||||
import type { ReleaseChannel } from "../../features/application-update/common/update-channels";
|
import type { ReleaseChannel } from "../../features/application-update/common/update-channels";
|
||||||
|
import { createDependentInitializableState } from "../initializable-state/create-dependent";
|
||||||
|
|
||||||
const releaseChannelInjectable = createLazyInitializableState({
|
const {
|
||||||
|
value: releaseChannelInjectable,
|
||||||
|
initializers: [
|
||||||
|
initReleaseChannelOnMainInjectable,
|
||||||
|
initReleaseChannelOnRendererInjectable,
|
||||||
|
],
|
||||||
|
} = createDependentInitializableState({
|
||||||
id: "release-channel",
|
id: "release-channel",
|
||||||
init: (di): ReleaseChannel => {
|
init: (di): ReleaseChannel => {
|
||||||
const buildSemanticVersion = di.inject(buildSemanticVersionInjectable);
|
const buildSemanticVersion = di.inject(buildSemanticVersionInjectable);
|
||||||
@ -21,6 +27,15 @@ const releaseChannelInjectable = createLazyInitializableState({
|
|||||||
return "latest";
|
return "latest";
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
initAfter: [
|
||||||
|
initBuildSemanticVersionOnMainInjectable,
|
||||||
|
initBuildSemanticVersionOnRendererInjectable,
|
||||||
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
|
export {
|
||||||
|
initReleaseChannelOnMainInjectable,
|
||||||
|
initReleaseChannelOnRendererInjectable,
|
||||||
|
};
|
||||||
|
|
||||||
export default releaseChannelInjectable;
|
export default releaseChannelInjectable;
|
||||||
|
|||||||
@ -2,12 +2,27 @@
|
|||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
import directoryForUserDataInjectable from "../../common/app-paths/directory-for-user-data.injectable";
|
import directoryForUserDataInjectable, { initDirectoryForUserDataOnMainInjectable, initDirectoryForUserDataOnRendererInjectable } from "../../common/app-paths/directory-for-user-data.injectable";
|
||||||
import { createLazyInitializableState } from "../../common/initializable-state/create-lazy";
|
import { createDependentInitializableState } from "../../common/initializable-state/create-dependent";
|
||||||
|
|
||||||
const extensionPackageRootDirectoryInjectable = createLazyInitializableState({
|
const {
|
||||||
|
value: extensionPackageRootDirectoryInjectable,
|
||||||
|
initializers: [
|
||||||
|
initExtensionPackageRootDirectoryOnMainInjectable,
|
||||||
|
initExtensionPackageRootDirectoryOnRendererInjectable,
|
||||||
|
],
|
||||||
|
} = createDependentInitializableState({
|
||||||
id: "extension-package-root-directory",
|
id: "extension-package-root-directory",
|
||||||
init: (di) => di.inject(directoryForUserDataInjectable).get(),
|
init: (di) => di.inject(directoryForUserDataInjectable).get(),
|
||||||
|
initAfter: [
|
||||||
|
initDirectoryForUserDataOnMainInjectable,
|
||||||
|
initDirectoryForUserDataOnRendererInjectable,
|
||||||
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
|
export {
|
||||||
|
initExtensionPackageRootDirectoryOnMainInjectable,
|
||||||
|
initExtensionPackageRootDirectoryOnRendererInjectable,
|
||||||
|
};
|
||||||
|
|
||||||
export default extensionPackageRootDirectoryInjectable;
|
export default extensionPackageRootDirectoryInjectable;
|
||||||
|
|||||||
@ -2,19 +2,33 @@
|
|||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
import directoryForUserDataInjectable from "../../../common/app-paths/directory-for-user-data.injectable";
|
import directoryForUserDataInjectable, { initDirectoryForUserDataOnMainInjectable, initDirectoryForUserDataOnRendererInjectable } from "../../../common/app-paths/directory-for-user-data.injectable";
|
||||||
import { createLazyInitializableState } from "../../../common/initializable-state/create-lazy";
|
import { createDependentInitializableState } from "../../../common/initializable-state/create-dependent";
|
||||||
import joinPathsInjectable from "../../../common/path/join-paths.injectable";
|
import joinPathsInjectable from "../../../common/path/join-paths.injectable";
|
||||||
|
|
||||||
const directoryForExtensionDataInjectable = createLazyInitializableState({
|
const {
|
||||||
|
value: directoryForExtensionDataInjectable,
|
||||||
|
initializers: [
|
||||||
|
initDirectoryForExtensionDataOnMainInjectable,
|
||||||
|
initDirectoryForExtensionDataOnRendererInjectable,
|
||||||
|
],
|
||||||
|
} = createDependentInitializableState({
|
||||||
id: "directory-for-extension-data",
|
id: "directory-for-extension-data",
|
||||||
|
|
||||||
init: (di) => {
|
init: (di) => {
|
||||||
const joinPaths = di.inject(joinPathsInjectable);
|
const joinPaths = di.inject(joinPathsInjectable);
|
||||||
const directoryForUserData = di.inject(directoryForUserDataInjectable);
|
const directoryForUserData = di.inject(directoryForUserDataInjectable);
|
||||||
|
|
||||||
return joinPaths(directoryForUserData.get(), "extension_data");
|
return joinPaths(directoryForUserData.get(), "extension_data");
|
||||||
},
|
},
|
||||||
|
initAfter: [
|
||||||
|
initDirectoryForUserDataOnMainInjectable,
|
||||||
|
initDirectoryForUserDataOnRendererInjectable,
|
||||||
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
|
export {
|
||||||
|
initDirectoryForExtensionDataOnMainInjectable,
|
||||||
|
initDirectoryForExtensionDataOnRendererInjectable,
|
||||||
|
};
|
||||||
|
|
||||||
export default directoryForExtensionDataInjectable;
|
export default directoryForExtensionDataInjectable;
|
||||||
|
|||||||
@ -2,13 +2,28 @@
|
|||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
import { createLazyInitializableState } from "../../../../common/initializable-state/create-lazy";
|
import { createDependentInitializableState } from "../../../../common/initializable-state/create-dependent";
|
||||||
import releaseChannelInjectable from "../../../../common/vars/release-channel.injectable";
|
import releaseChannelInjectable, { initReleaseChannelOnMainInjectable, initReleaseChannelOnRendererInjectable } from "../../../../common/vars/release-channel.injectable";
|
||||||
import { updateChannels } from "../update-channels";
|
import { updateChannels } from "../update-channels";
|
||||||
|
|
||||||
const defaultUpdateChannelInjectable = createLazyInitializableState({
|
const {
|
||||||
|
value: defaultUpdateChannelInjectable,
|
||||||
|
initializers: [
|
||||||
|
initDefaultUpdateChannelOnMainInjectable,
|
||||||
|
initDefaultUpdateChannelOnRendererInjectable,
|
||||||
|
],
|
||||||
|
} = createDependentInitializableState({
|
||||||
id: "default-update-channel",
|
id: "default-update-channel",
|
||||||
init: (di) => updateChannels[di.inject(releaseChannelInjectable).get()],
|
init: (di) => updateChannels[di.inject(releaseChannelInjectable).get()],
|
||||||
|
initAfter: [
|
||||||
|
initReleaseChannelOnMainInjectable,
|
||||||
|
initReleaseChannelOnRendererInjectable,
|
||||||
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
|
export {
|
||||||
|
initDefaultUpdateChannelOnMainInjectable,
|
||||||
|
initDefaultUpdateChannelOnRendererInjectable,
|
||||||
|
};
|
||||||
|
|
||||||
export default defaultUpdateChannelInjectable;
|
export default defaultUpdateChannelInjectable;
|
||||||
|
|||||||
@ -15,7 +15,7 @@ import setElectronAppPathInjectable from "./set-electron-app-path/set-electron-a
|
|||||||
|
|
||||||
const {
|
const {
|
||||||
value: appPathsInjectable,
|
value: appPathsInjectable,
|
||||||
initializer: initAppPathsInjectable,
|
initializer: initAppPathsOnMainInjectable,
|
||||||
} = createInitializableState({
|
} = createInitializableState({
|
||||||
id: "app-paths",
|
id: "app-paths",
|
||||||
init: (di) => {
|
init: (di) => {
|
||||||
@ -41,6 +41,6 @@ const {
|
|||||||
when: beforeElectronIsReadyInjectionToken,
|
when: beforeElectronIsReadyInjectionToken,
|
||||||
});
|
});
|
||||||
|
|
||||||
export { initAppPathsInjectable };
|
export { initAppPathsOnMainInjectable };
|
||||||
|
|
||||||
export default appPathsInjectable;
|
export default appPathsInjectable;
|
||||||
|
|||||||
@ -9,7 +9,7 @@ import getBuildVersionInjectable from "./get-build-version.injectable";
|
|||||||
|
|
||||||
const {
|
const {
|
||||||
value: buildVersionInjectable,
|
value: buildVersionInjectable,
|
||||||
initializer: initializeBuildVersionInjectable,
|
initializer: initializeBuildVersionOnMainInjectable,
|
||||||
} = createInitializableState({
|
} = createInitializableState({
|
||||||
id: "build-version",
|
id: "build-version",
|
||||||
init: (di) => {
|
init: (di) => {
|
||||||
@ -21,6 +21,6 @@ const {
|
|||||||
when: beforeApplicationIsLoadingInjectionToken,
|
when: beforeApplicationIsLoadingInjectionToken,
|
||||||
});
|
});
|
||||||
|
|
||||||
export { initializeBuildVersionInjectable };
|
export { initializeBuildVersionOnMainInjectable };
|
||||||
|
|
||||||
export default buildVersionInjectable;
|
export default buildVersionInjectable;
|
||||||
|
|||||||
@ -11,7 +11,7 @@ import { beforeFrameStartsInjectionToken } from "../before-frame-starts/before-f
|
|||||||
|
|
||||||
const {
|
const {
|
||||||
value: appPathsInjectable,
|
value: appPathsInjectable,
|
||||||
initializer: initAppPathsInjectable,
|
initializer: initAppPathsOnRendererInjectable,
|
||||||
} = createInitializableState({
|
} = createInitializableState({
|
||||||
id: "app-paths",
|
id: "app-paths",
|
||||||
init: (di) => {
|
init: (di) => {
|
||||||
@ -23,6 +23,6 @@ const {
|
|||||||
when: beforeFrameStartsInjectionToken,
|
when: beforeFrameStartsInjectionToken,
|
||||||
});
|
});
|
||||||
|
|
||||||
export { initAppPathsInjectable };
|
export { initAppPathsOnRendererInjectable };
|
||||||
|
|
||||||
export default appPathsInjectable;
|
export default appPathsInjectable;
|
||||||
|
|||||||
@ -9,7 +9,7 @@ import { beforeFrameStartsInjectionToken } from "../before-frame-starts/before-f
|
|||||||
|
|
||||||
const {
|
const {
|
||||||
value: buildVersionInjectable,
|
value: buildVersionInjectable,
|
||||||
initializer: initializeBuildVersionInjectable,
|
initializer: initializeBuildVersionOnRendererInjectable,
|
||||||
} = createInitializableState({
|
} = createInitializableState({
|
||||||
id: "build-version",
|
id: "build-version",
|
||||||
init: (di) => {
|
init: (di) => {
|
||||||
@ -21,6 +21,6 @@ const {
|
|||||||
when: beforeFrameStartsInjectionToken,
|
when: beforeFrameStartsInjectionToken,
|
||||||
});
|
});
|
||||||
|
|
||||||
export { initializeBuildVersionInjectable };
|
export { initializeBuildVersionOnRendererInjectable };
|
||||||
|
|
||||||
export default buildVersionInjectable;
|
export default buildVersionInjectable;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user