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

Replace all uses of getAbsolutePath with joinPaths as it is more correct and less confusing

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton 2022-08-24 15:39:48 -04:00
parent 2058860412
commit 75eed35f3a
16 changed files with 69 additions and 94 deletions

View File

@ -4,16 +4,16 @@
*/ */
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import directoryForUserDataInjectable from "../directory-for-user-data/directory-for-user-data.injectable"; import directoryForUserDataInjectable from "../directory-for-user-data/directory-for-user-data.injectable";
import getAbsolutePathInjectable from "../../path/get-absolute-path.injectable"; import joinPathsInjectable from "../../path/join-paths.injectable";
const directoryForBinariesInjectable = getInjectable({ const directoryForBinariesInjectable = getInjectable({
id: "directory-for-binaries", id: "directory-for-binaries",
instantiate: (di) => { instantiate: (di) => {
const getAbsolutePath = di.inject(getAbsolutePathInjectable); const joinPaths = di.inject(joinPathsInjectable);
const directoryForUserData = di.inject(directoryForUserDataInjectable); const directoryForUserData = di.inject(directoryForUserDataInjectable);
return getAbsolutePath(directoryForUserData, "binaries"); return joinPaths(directoryForUserData, "binaries");
}, },
}); });

View File

@ -4,19 +4,16 @@
*/ */
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import directoryForUserDataInjectable from "../directory-for-user-data/directory-for-user-data.injectable"; import directoryForUserDataInjectable from "../directory-for-user-data/directory-for-user-data.injectable";
import getAbsolutePathInjectable from "../../path/get-absolute-path.injectable"; import joinPathsInjectable from "../../path/join-paths.injectable";
const directoryForKubeConfigsInjectable = getInjectable({ const directoryForKubeConfigsInjectable = getInjectable({
id: "directory-for-kube-configs", id: "directory-for-kube-configs",
instantiate: (di) => { instantiate: (di) => {
const getAbsolutePath = di.inject(getAbsolutePathInjectable); const joinPaths = di.inject(joinPathsInjectable);
const directoryForUserData = di.inject(directoryForUserDataInjectable); const directoryForUserData = di.inject(directoryForUserDataInjectable);
return getAbsolutePath( return joinPaths(directoryForUserData, "kubeconfigs");
directoryForUserData,
"kubeconfigs",
);
}, },
}); });

View File

@ -4,17 +4,16 @@
*/ */
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import directoryForBinariesInjectable from "../directory-for-binaries/directory-for-binaries.injectable"; import directoryForBinariesInjectable from "../directory-for-binaries/directory-for-binaries.injectable";
import getAbsolutePathInjectable from "../../path/get-absolute-path.injectable"; import joinPathsInjectable from "../../path/join-paths.injectable";
const directoryForKubectlBinariesInjectable = getInjectable({ const directoryForKubectlBinariesInjectable = getInjectable({
id: "directory-for-kubectl-binaries", id: "directory-for-kubectl-binaries",
instantiate: (di) => { instantiate: (di) => {
const getAbsolutePath = di.inject(getAbsolutePathInjectable); const joinPaths = di.inject(joinPathsInjectable);
const directoryForBinaries = di.inject(directoryForBinariesInjectable); const directoryForBinaries = di.inject(directoryForBinariesInjectable);
return joinPaths(directoryForBinaries, "kubectl");
return getAbsolutePath(directoryForBinaries, "kubectl");
}, },
}); });

View File

@ -4,17 +4,16 @@
*/ */
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import directoryForKubeConfigsInjectable from "../directory-for-kube-configs/directory-for-kube-configs.injectable"; import directoryForKubeConfigsInjectable from "../directory-for-kube-configs/directory-for-kube-configs.injectable";
import getAbsolutePathInjectable from "../../path/get-absolute-path.injectable"; import joinPathsInjectable from "../../path/join-paths.injectable";
const getCustomKubeConfigDirectoryInjectable = getInjectable({ const getCustomKubeConfigDirectoryInjectable = getInjectable({
id: "get-custom-kube-config-directory", id: "get-custom-kube-config-directory",
instantiate: (di) => { instantiate: (di) => {
const directoryForKubeConfigs = di.inject(directoryForKubeConfigsInjectable); const directoryForKubeConfigs = di.inject(directoryForKubeConfigsInjectable);
const getAbsolutePath = di.inject(getAbsolutePathInjectable); const joinPaths = di.inject(joinPathsInjectable);
return (directoryName: string) => return (directoryName: string) => joinPaths(directoryForKubeConfigs, directoryName);
getAbsolutePath(directoryForKubeConfigs, directoryName);
}, },
}); });

View File

@ -4,16 +4,16 @@
*/ */
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import directoryForUserDataInjectable from "../app-paths/directory-for-user-data/directory-for-user-data.injectable"; import directoryForUserDataInjectable from "../app-paths/directory-for-user-data/directory-for-user-data.injectable";
import getAbsolutePathInjectable from "../path/get-absolute-path.injectable"; import joinPathsInjectable from "../path/join-paths.injectable";
const directoryForLensLocalStorageInjectable = getInjectable({ const directoryForLensLocalStorageInjectable = getInjectable({
id: "directory-for-lens-local-storage", id: "directory-for-lens-local-storage",
instantiate: (di) => { instantiate: (di) => {
const getAbsolutePath = di.inject(getAbsolutePathInjectable); const joinPaths = di.inject(joinPathsInjectable);
const directoryForUserData = di.inject(directoryForUserDataInjectable); const directoryForUserData = di.inject(directoryForUserDataInjectable);
return getAbsolutePath( return joinPaths(
directoryForUserData, directoryForUserData,
"lens-local-storage", "lens-local-storage",
); );

View File

@ -4,17 +4,17 @@
*/ */
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import bundledResourcesDirectoryInjectable from "./bundled-resources-dir.injectable"; import bundledResourcesDirectoryInjectable from "./bundled-resources-dir.injectable";
import getAbsolutePathInjectable from "../path/get-absolute-path.injectable";
import normalizedPlatformArchitectureInjectable from "./normalized-platform-architecture.injectable"; import normalizedPlatformArchitectureInjectable from "./normalized-platform-architecture.injectable";
import joinPathsInjectable from "../path/join-paths.injectable";
const baseBundledBinariesDirectoryInjectable = getInjectable({ const baseBundledBinariesDirectoryInjectable = getInjectable({
id: "base-bundled-binaries-directory", id: "base-bundled-binaries-directory",
instantiate: (di) => { instantiate: (di) => {
const bundledResourcesDirectory = di.inject(bundledResourcesDirectoryInjectable); const bundledResourcesDirectory = di.inject(bundledResourcesDirectoryInjectable);
const normalizedPlatformArchitecture = di.inject(normalizedPlatformArchitectureInjectable); const normalizedPlatformArchitecture = di.inject(normalizedPlatformArchitectureInjectable);
const getAbsolutePath = di.inject(getAbsolutePathInjectable); const joinPaths = di.inject(joinPathsInjectable);
return getAbsolutePath( return joinPaths(
bundledResourcesDirectory, bundledResourcesDirectory,
normalizedPlatformArchitecture, normalizedPlatformArchitecture,
); );

View File

@ -5,20 +5,20 @@
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import isProductionInjectable from "./is-production.injectable"; import isProductionInjectable from "./is-production.injectable";
import normalizedPlatformInjectable from "./normalized-platform.injectable"; import normalizedPlatformInjectable from "./normalized-platform.injectable";
import getAbsolutePathInjectable from "../path/get-absolute-path.injectable";
import lensResourcesDirInjectable from "./lens-resources-dir.injectable"; import lensResourcesDirInjectable from "./lens-resources-dir.injectable";
import joinPathsInjectable from "../path/join-paths.injectable";
const bundledResourcesDirectoryInjectable = getInjectable({ const bundledResourcesDirectoryInjectable = getInjectable({
id: "bundled-resources-directory", id: "bundled-resources-directory",
instantiate: (di) => { instantiate: (di) => {
const isProduction = di.inject(isProductionInjectable); const isProduction = di.inject(isProductionInjectable);
const normalizedPlatform = di.inject(normalizedPlatformInjectable); const normalizedPlatform = di.inject(normalizedPlatformInjectable);
const getAbsolutePath = di.inject(getAbsolutePathInjectable); const joinPaths = di.inject(joinPathsInjectable);
const lensResourcesDir = di.inject(lensResourcesDirInjectable); const lensResourcesDir = di.inject(lensResourcesDirInjectable);
return isProduction return isProduction
? lensResourcesDir ? lensResourcesDir
: getAbsolutePath(lensResourcesDir, "binaries", "client", normalizedPlatform); : joinPaths(lensResourcesDir, "binaries", "client", normalizedPlatform);
}, },
}); });

View File

@ -3,17 +3,17 @@
* 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 { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import getAbsolutePathInjectable from "../path/get-absolute-path.injectable"; import joinPathsInjectable from "../path/join-paths.injectable";
import lensResourcesDirInjectable from "./lens-resources-dir.injectable"; import lensResourcesDirInjectable from "./lens-resources-dir.injectable";
const staticFilesDirectoryInjectable = getInjectable({ const staticFilesDirectoryInjectable = getInjectable({
id: "static-files-directory", id: "static-files-directory",
instantiate: (di) => { instantiate: (di) => {
const getAbsolutePath = di.inject(getAbsolutePathInjectable); const joinPaths = di.inject(joinPathsInjectable);
const lensResourcesDir = di.inject(lensResourcesDirInjectable); const lensResourcesDir = di.inject(lensResourcesDirInjectable);
return getAbsolutePath(lensResourcesDir, "static"); return joinPaths(lensResourcesDir, "static");
}, },
}); });

View File

@ -4,16 +4,16 @@
*/ */
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import directoryForUserDataInjectable from "../../../common/app-paths/directory-for-user-data/directory-for-user-data.injectable"; import directoryForUserDataInjectable from "../../../common/app-paths/directory-for-user-data/directory-for-user-data.injectable";
import getAbsolutePathInjectable from "../../../common/path/get-absolute-path.injectable"; import joinPathsInjectable from "../../../common/path/join-paths.injectable";
const directoryForExtensionDataInjectable = getInjectable({ const directoryForExtensionDataInjectable = getInjectable({
id: "directory-for-extension-data", id: "directory-for-extension-data",
instantiate: (di) => { instantiate: (di) => {
const getAbsolutePath = di.inject(getAbsolutePathInjectable); const joinPaths = di.inject(joinPathsInjectable);
const directoryForUserData = di.inject(directoryForUserDataInjectable); const directoryForUserData = di.inject(directoryForUserDataInjectable);
return getAbsolutePath(directoryForUserData, "extension_data"); return joinPaths(directoryForUserData, "extension_data");
}, },
}); });

View File

@ -4,21 +4,21 @@
*/ */
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import { getBinaryName } from "../../common/vars"; import { getBinaryName } from "../../common/vars";
import getAbsolutePathInjectable from "../../common/path/get-absolute-path.injectable";
import normalizedPlatformInjectable from "../../common/vars/normalized-platform.injectable"; import normalizedPlatformInjectable from "../../common/vars/normalized-platform.injectable";
import baseBundledBinariesDirectoryInjectable from "../../common/vars/base-bundled-binaries-dir.injectable"; import baseBundledBinariesDirectoryInjectable from "../../common/vars/base-bundled-binaries-dir.injectable";
import joinPathsInjectable from "../../common/path/join-paths.injectable";
const helmBinaryPathInjectable = getInjectable({ const helmBinaryPathInjectable = getInjectable({
id: "helm-binary-path", id: "helm-binary-path",
instantiate: (di) => { instantiate: (di) => {
const getAbsolutePath = di.inject(getAbsolutePathInjectable); const joinPaths = di.inject(joinPathsInjectable);
const normalizedPlatform = di.inject(normalizedPlatformInjectable); const normalizedPlatform = di.inject(normalizedPlatformInjectable);
const baseBundledBinariesDirectory = di.inject(baseBundledBinariesDirectoryInjectable); const baseBundledBinariesDirectory = di.inject(baseBundledBinariesDirectoryInjectable);
const helmBinaryName = getBinaryName("helm", { forPlatform: normalizedPlatform }); const helmBinaryName = getBinaryName("helm", { forPlatform: normalizedPlatform });
return getAbsolutePath(baseBundledBinariesDirectory, helmBinaryName); return joinPaths(baseBundledBinariesDirectory, helmBinaryName);
}, },
}); });

View File

@ -11,8 +11,6 @@ import path from "path";
import isDevelopmentInjectable from "../../common/vars/is-development.injectable"; import isDevelopmentInjectable from "../../common/vars/is-development.injectable";
import httpProxy from "http-proxy"; import httpProxy from "http-proxy";
import readFileBufferInjectable from "../../common/fs/read-file-buffer.injectable"; import readFileBufferInjectable from "../../common/fs/read-file-buffer.injectable";
import type { GetAbsolutePath } from "../../common/path/get-absolute-path.injectable";
import getAbsolutePathInjectable from "../../common/path/get-absolute-path.injectable";
import type { JoinPaths } from "../../common/path/join-paths.injectable"; import type { JoinPaths } from "../../common/path/join-paths.injectable";
import joinPathsInjectable from "../../common/path/join-paths.injectable"; import joinPathsInjectable from "../../common/path/join-paths.injectable";
import { webpackDevServerPort } from "../../../webpack/vars"; import { webpackDevServerPort } from "../../../webpack/vars";
@ -20,11 +18,13 @@ import type { LensApiRequest, RouteResponse } from "../router/route";
import { route } from "../router/route"; import { route } from "../router/route";
import staticFilesDirectoryInjectable from "../../common/vars/static-files-directory.injectable"; import staticFilesDirectoryInjectable from "../../common/vars/static-files-directory.injectable";
import appNameInjectable from "../../common/vars/app-name.injectable"; import appNameInjectable from "../../common/vars/app-name.injectable";
import type { GetAbsolutePath } from "../../common/path/get-absolute-path.injectable";
import getAbsolutePathInjectable from "../../common/path/get-absolute-path.injectable";
interface ProductionDependencies { interface ProductionDependencies {
readFileBuffer: (path: string) => Promise<Buffer>; readFileBuffer: (path: string) => Promise<Buffer>;
getAbsolutePath: GetAbsolutePath;
joinPaths: JoinPaths; joinPaths: JoinPaths;
getAbsolutePath: GetAbsolutePath;
staticFilesDirectory: string; staticFilesDirectory: string;
appName: string; appName: string;
} }
@ -98,8 +98,8 @@ const staticFileRouteInjectable = getRouteInjectable({
instantiate: (di) => { instantiate: (di) => {
const isDevelopment = di.inject(isDevelopmentInjectable); const isDevelopment = di.inject(isDevelopmentInjectable);
const readFileBuffer = di.inject(readFileBufferInjectable); const readFileBuffer = di.inject(readFileBufferInjectable);
const getAbsolutePath = di.inject(getAbsolutePathInjectable);
const joinPaths = di.inject(joinPathsInjectable); const joinPaths = di.inject(joinPathsInjectable);
const getAbsolutePath = di.inject(getAbsolutePathInjectable);
const staticFilesDirectory = di.inject(staticFilesDirectoryInjectable); const staticFilesDirectory = di.inject(staticFilesDirectoryInjectable);
const appName = di.inject(appNameInjectable); const appName = di.inject(appNameInjectable);
@ -114,10 +114,10 @@ const staticFileRouteInjectable = getRouteInjectable({
}) })
: handleStaticFileInProduction({ : handleStaticFileInProduction({
readFileBuffer, readFileBuffer,
getAbsolutePath,
joinPaths, joinPaths,
staticFilesDirectory, staticFilesDirectory,
appName, appName,
getAbsolutePath,
}), }),
); );
}, },

View File

@ -5,7 +5,7 @@
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import createLensWindowInjectable from "../application-window/create-lens-window.injectable"; import createLensWindowInjectable from "../application-window/create-lens-window.injectable";
import staticFilesDirectoryInjectable from "../../../../common/vars/static-files-directory.injectable"; import staticFilesDirectoryInjectable from "../../../../common/vars/static-files-directory.injectable";
import getAbsolutePathInjectable from "../../../../common/path/get-absolute-path.injectable"; import joinPathsInjectable from "../../../../common/path/join-paths.injectable";
const splashWindowInjectable = getInjectable({ const splashWindowInjectable = getInjectable({
id: "splash-window", id: "splash-window",
@ -13,8 +13,8 @@ const splashWindowInjectable = getInjectable({
instantiate: (di) => { instantiate: (di) => {
const createLensWindow = di.inject(createLensWindowInjectable); const createLensWindow = di.inject(createLensWindowInjectable);
const staticFilesDirectory = di.inject(staticFilesDirectoryInjectable); const staticFilesDirectory = di.inject(staticFilesDirectoryInjectable);
const getAbsolutePath = di.inject(getAbsolutePathInjectable); const joinPaths = di.inject(joinPathsInjectable);
const splashWindowFile = getAbsolutePath(staticFilesDirectory, "splash.html"); const splashWindowFile = joinPaths(staticFilesDirectory, "splash.html");
return createLensWindow({ return createLensWindow({
id: "splash", id: "splash",

View File

@ -3,34 +3,33 @@
* 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 { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import getAbsolutePathInjectable from "../../../common/path/get-absolute-path.injectable";
import staticFilesDirectoryInjectable from "../../../common/vars/static-files-directory.injectable"; import staticFilesDirectoryInjectable from "../../../common/vars/static-files-directory.injectable";
import isDevelopmentInjectable from "../../../common/vars/is-development.injectable"; import isDevelopmentInjectable from "../../../common/vars/is-development.injectable";
import isMacInjectable from "../../../common/vars/is-mac.injectable"; import isMacInjectable from "../../../common/vars/is-mac.injectable";
import { camelCase, flow, upperFirst } from "lodash/fp"; import { camelCase, flow, upperFirst } from "lodash/fp";
import joinPathsInjectable from "../../../common/path/join-paths.injectable";
const upperCamelCase = flow(camelCase, upperFirst); const upperCamelCase = flow(camelCase, upperFirst);
const getTrayIconPathInjectable = getInjectable({ const getTrayIconPathInjectable = getInjectable({
id: "get-tray-icon-path", id: "get-tray-icon-path",
instantiate: (di) => { instantiate: (di) => {
const getAbsolutePath = di.inject(getAbsolutePathInjectable); const joinPaths = di.inject(joinPathsInjectable);
const staticFilesDirectory = di.inject(staticFilesDirectoryInjectable); const staticFilesDirectory = di.inject(staticFilesDirectoryInjectable);
const isDevelopment = di.inject(isDevelopmentInjectable); const isDevelopment = di.inject(isDevelopmentInjectable);
const isMac = di.inject(isMacInjectable); const isMac = di.inject(isMacInjectable);
const baseIconDirectory = getAbsolutePath( const baseIconDirectory = joinPaths(
staticFilesDirectory, staticFilesDirectory,
isDevelopment ? "../build/tray" : "icons", // copied within electron-builder extras isDevelopment ? "../build/tray" : "icons", // copied within electron-builder extras
); );
const fileSuffix = isMac ? "Template.png" : ".png"; const fileSuffix = isMac ? "Template.png" : ".png";
return (name: string) => return (name: string) => joinPaths(
getAbsolutePath( baseIconDirectory,
baseIconDirectory, `trayIcon${upperCamelCase(name)}${fileSuffix}`,
`trayIcon${upperCamelCase(name)}${fileSuffix}`, );
);
}, },
}); });

View File

@ -8,44 +8,29 @@ import { hasCorrectExtension } from "./has-correct-extension";
import readFileInjectable from "../../../../common/fs/read-file.injectable"; import readFileInjectable from "../../../../common/fs/read-file.injectable";
import readDirInjectable from "../../../../common/fs/read-dir.injectable"; import readDirInjectable from "../../../../common/fs/read-dir.injectable";
import type { RawTemplates } from "./create-resource-templates.injectable"; import type { RawTemplates } from "./create-resource-templates.injectable";
import type { GetAbsolutePath } from "../../../../common/path/get-absolute-path.injectable";
import getAbsolutePathInjectable from "../../../../common/path/get-absolute-path.injectable";
import staticFilesDirectoryInjectable from "../../../../common/vars/static-files-directory.injectable"; import staticFilesDirectoryInjectable from "../../../../common/vars/static-files-directory.injectable";
import joinPathsInjectable from "../../../../common/path/join-paths.injectable";
interface Dependencies {
readDir: (dirPath: string) => Promise<string[]>;
readFile: (filePath: string) => Promise<string>;
getAbsolutePath: GetAbsolutePath;
staticFilesDirectory: string;
}
async function getTemplates({ readDir, readFile, getAbsolutePath, staticFilesDirectory }: Dependencies) {
const templatesFolder = getAbsolutePath(staticFilesDirectory, "../templates/create-resource");
/**
* Mapping between file names and their contents
*/
const templates: [file: string, contents: string][] = [];
for (const dirEntry of await readDir(templatesFolder)) {
if (hasCorrectExtension(dirEntry)) {
templates.push([path.parse(dirEntry).name, await readFile(path.join(templatesFolder, dirEntry))]);
}
}
return templates;
}
const lensCreateResourceTemplatesInjectable = getInjectable({ const lensCreateResourceTemplatesInjectable = getInjectable({
id: "lens-create-resource-templates", id: "lens-create-resource-templates",
instantiate: async (di): Promise<RawTemplates> => { instantiate: async (di): Promise<RawTemplates> => {
const templates = await getTemplates({ const readFile = di.inject(readFileInjectable);
readFile: di.inject(readFileInjectable), const readDir = di.inject(readDirInjectable);
readDir: di.inject(readDirInjectable), const joinPaths = di.inject(joinPathsInjectable);
getAbsolutePath: di.inject(getAbsolutePathInjectable), const staticFilesDirectory = di.inject(staticFilesDirectoryInjectable);
staticFilesDirectory: di.inject(staticFilesDirectoryInjectable),
}); /**
* Mapping between file names and their contents
*/
const templates: [file: string, contents: string][] = [];
const templatesFolder = joinPaths(staticFilesDirectory, "../templates/create-resource");
for (const dirEntry of await readDir(templatesFolder)) {
if (hasCorrectExtension(dirEntry)) {
templates.push([path.parse(dirEntry).name, await readFile(path.join(templatesFolder, dirEntry))]);
}
}
return ["lens", templates]; return ["lens", templates];
}, },

View File

@ -9,9 +9,9 @@ import readJsonFileInjectable from "../../../common/fs/read-json-file.injectable
import writeJsonFileInjectable from "../../../common/fs/write-json-file.injectable"; import writeJsonFileInjectable from "../../../common/fs/write-json-file.injectable";
import { observable } from "mobx"; import { observable } from "mobx";
import loggerInjectable from "../../../common/logger.injectable"; import loggerInjectable from "../../../common/logger.injectable";
import getAbsolutePathInjectable from "../../../common/path/get-absolute-path.injectable";
import hostedClusterIdInjectable from "../../cluster-frame-context/hosted-cluster-id.injectable"; import hostedClusterIdInjectable from "../../cluster-frame-context/hosted-cluster-id.injectable";
import storageSaveDelayInjectable from "./storage-save-delay.injectable"; import storageSaveDelayInjectable from "./storage-save-delay.injectable";
import joinPathsInjectable from "../../../common/path/join-paths.injectable";
const createStorageInjectable = getInjectable({ const createStorageInjectable = getInjectable({
id: "create-storage", id: "create-storage",
@ -26,7 +26,7 @@ const createStorageInjectable = getInjectable({
writeJsonFile: di.inject(writeJsonFileInjectable), writeJsonFile: di.inject(writeJsonFileInjectable),
logger: di.inject(loggerInjectable), logger: di.inject(loggerInjectable),
directoryForLensLocalStorage: di.inject(directoryForLensLocalStorageInjectable), directoryForLensLocalStorage: di.inject(directoryForLensLocalStorageInjectable),
getAbsolutePath: di.inject(getAbsolutePathInjectable), joinPaths: di.inject(joinPathsInjectable),
hostedClusterId: di.inject(hostedClusterIdInjectable), hostedClusterId: di.inject(hostedClusterIdInjectable),
saveDelay: di.inject(storageSaveDelayInjectable), saveDelay: di.inject(storageSaveDelayInjectable),
}), }),

View File

@ -8,10 +8,9 @@
import { comparer, reaction, toJS, when } from "mobx"; import { comparer, reaction, toJS, when } from "mobx";
import type { StorageLayer } from "../storageHelper"; import type { StorageLayer } from "../storageHelper";
import { StorageHelper } from "../storageHelper"; import { StorageHelper } from "../storageHelper";
import { isTestEnv } from "../../../common/vars";
import type { JsonObject, JsonValue } from "type-fest"; import type { JsonObject, JsonValue } from "type-fest";
import type { Logger } from "../../../common/logger"; import type { Logger } from "../../../common/logger";
import type { GetAbsolutePath } from "../../../common/path/get-absolute-path.injectable"; import type { JoinPaths } from "../../../common/path/join-paths.injectable";
interface Dependencies { interface Dependencies {
storage: { initialized: boolean; loaded: boolean; data: Record<string, any> }; storage: { initialized: boolean; loaded: boolean; data: Record<string, any> };
@ -19,7 +18,7 @@ interface Dependencies {
directoryForLensLocalStorage: string; directoryForLensLocalStorage: string;
readJsonFile: (filePath: string) => Promise<JsonValue>; readJsonFile: (filePath: string) => Promise<JsonValue>;
writeJsonFile: (filePath: string, contentObject: JsonObject) => Promise<void>; writeJsonFile: (filePath: string, contentObject: JsonObject) => Promise<void>;
getAbsolutePath: GetAbsolutePath; joinPaths: JoinPaths;
hostedClusterId: string | undefined; hostedClusterId: string | undefined;
saveDelay: number; saveDelay: number;
} }
@ -31,7 +30,7 @@ export type CreateStorage = <T>(key: string, defaultValue: T) => StorageLayer<T>
*/ */
export const createStorage = ({ export const createStorage = ({
storage, storage,
getAbsolutePath, joinPaths,
logger, logger,
directoryForLensLocalStorage, directoryForLensLocalStorage,
readJsonFile, readJsonFile,
@ -45,17 +44,14 @@ export const createStorage = ({
storage.initialized = true; storage.initialized = true;
(async () => { (async () => {
const filePath = getAbsolutePath(directoryForLensLocalStorage, `${hostedClusterId || "app"}.json`); const filePath = joinPaths(directoryForLensLocalStorage, `${hostedClusterId || "app"}.json`);
try { try {
storage.data = (await readJsonFile(filePath)) as JsonObject; storage.data = (await readJsonFile(filePath)) as JsonObject;
} catch { } catch {
// do nothing // do nothing
} finally { } finally {
if (!isTestEnv) { logger.info(`${logPrefix} loading finished for ${filePath}`);
logger.info(`${logPrefix} loading finished for ${filePath}`);
}
storage.loaded = true; storage.loaded = true;
} }