mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Remove usage of legacy global .getInstance
Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
1 parent
303a397209
commit
bd47377dd1
13 files changed
+79
-85
No files matched your search
@@ -13,7 +13,7 @@ import execFileInjectable from "../../common/fs/exec-file.injectable";
|
||||
import helmBinaryPathInjectable from "../../main/helm/helm-binary-path.injectable";
|
||||
import getActiveHelmRepositoriesInjectable from "../../main/helm/repositories/get-active-helm-repositories/get-active-helm-repositories.injectable";
|
||||
import type { HelmRepo } from "../../common/helm/helm-repo";
|
||||
import callForPublicHelmRepositoriesInjectable from "./child-features/preferences/renderer/adding-of-public-helm-repository/public-helm-repositories/call-for-public-helm-repositories.injectable";
|
||||
import requestPublicHelmRepositoriesInjectable from "./child-features/preferences/renderer/adding-of-public-helm-repository/public-helm-repositories/request-public-helm-repositories.injectable";
|
||||
import isPathInjectable from "../../renderer/components/input/validators/is-path.injectable";
|
||||
import showSuccessNotificationInjectable from "../../renderer/components/notifications/show-success-notification.injectable";
|
||||
import showErrorNotificationInjectable from "../../renderer/components/notifications/show-error-notification.injectable";
|
||||
@@ -47,7 +47,7 @@ describe("add custom helm repository in preferences", () => {
|
||||
});
|
||||
|
||||
builder.beforeWindowStart((windowDi) => {
|
||||
windowDi.override(callForPublicHelmRepositoriesInjectable, () => async () => []);
|
||||
windowDi.override(requestPublicHelmRepositoriesInjectable, () => async () => []);
|
||||
windowDi.override(showSuccessNotificationInjectable, () => showSuccessNotificationMock);
|
||||
windowDi.override(showErrorNotificationInjectable, () => showErrorNotificationMock);
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ import execFileInjectable from "../../common/fs/exec-file.injectable";
|
||||
import helmBinaryPathInjectable from "../../main/helm/helm-binary-path.injectable";
|
||||
import getActiveHelmRepositoriesInjectable from "../../main/helm/repositories/get-active-helm-repositories/get-active-helm-repositories.injectable";
|
||||
import type { HelmRepo } from "../../common/helm/helm-repo";
|
||||
import callForPublicHelmRepositoriesInjectable from "./child-features/preferences/renderer/adding-of-public-helm-repository/public-helm-repositories/call-for-public-helm-repositories.injectable";
|
||||
import requestPublicHelmRepositoriesInjectable from "./child-features/preferences/renderer/adding-of-public-helm-repository/public-helm-repositories/request-public-helm-repositories.injectable";
|
||||
import showSuccessNotificationInjectable from "../../renderer/components/notifications/show-success-notification.injectable";
|
||||
import showErrorNotificationInjectable from "../../renderer/components/notifications/show-error-notification.injectable";
|
||||
import type { AsyncResult } from "../../common/utils/async-result";
|
||||
@@ -44,7 +44,7 @@ describe("add helm repository from list in preferences", () => {
|
||||
builder.beforeWindowStart((windowDi) => {
|
||||
windowDi.override(showSuccessNotificationInjectable, () => showSuccessNotificationMock);
|
||||
windowDi.override(showErrorNotificationInjectable, () => showErrorNotificationMock);
|
||||
windowDi.override(callForPublicHelmRepositoriesInjectable, () => callForPublicHelmRepositoriesMock);
|
||||
windowDi.override(requestPublicHelmRepositoriesInjectable, () => callForPublicHelmRepositoriesMock);
|
||||
});
|
||||
|
||||
rendered = await builder.render();
|
||||
|
||||
-29
@@ -1,29 +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 { sortBy } from "lodash/fp";
|
||||
import type { HelmRepo } from "../../../../../../../common/helm/helm-repo";
|
||||
import { customRequestPromise } from "../../../../../../../common/request";
|
||||
|
||||
const callForPublicHelmRepositoriesInjectable = getInjectable({
|
||||
id: "call-for-public-helm-repositories",
|
||||
|
||||
instantiate: () => async (): Promise<HelmRepo[]> => {
|
||||
const res = await customRequestPromise({
|
||||
uri: "https://github.com/lensapp/artifact-hub-repositories/releases/download/latest/repositories.json",
|
||||
json: true,
|
||||
resolveWithFullResponse: true,
|
||||
timeout: 10000,
|
||||
});
|
||||
|
||||
const repositories = res.body as HelmRepo[];
|
||||
|
||||
return sortBy(repo => repo.name, repositories);
|
||||
},
|
||||
|
||||
causesSideEffects: true,
|
||||
});
|
||||
|
||||
export default callForPublicHelmRepositoriesInjectable;
|
||||
+5
-9
@@ -4,19 +4,15 @@
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import { asyncComputed } from "@ogre-tools/injectable-react";
|
||||
import callForPublicHelmRepositoriesInjectable from "./call-for-public-helm-repositories.injectable";
|
||||
import requestPublicHelmRepositoriesInjectable from "./request-public-helm-repositories.injectable";
|
||||
|
||||
const publicHelmRepositoriesInjectable = getInjectable({
|
||||
id: "public-helm-repositories",
|
||||
|
||||
instantiate: (di) => {
|
||||
const callForPublicHelmRepositories = di.inject(callForPublicHelmRepositoriesInjectable);
|
||||
|
||||
return asyncComputed({
|
||||
getValueFromObservedPromise: callForPublicHelmRepositories,
|
||||
valueWhenPending: [],
|
||||
});
|
||||
},
|
||||
instantiate: (di) => asyncComputed({
|
||||
getValueFromObservedPromise: di.inject(requestPublicHelmRepositoriesInjectable),
|
||||
valueWhenPending: [],
|
||||
}),
|
||||
});
|
||||
|
||||
export default publicHelmRepositoriesInjectable;
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
/**
|
||||
* 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 { sortBy } from "lodash/fp";
|
||||
import downloadJsonInjectable from "../../../../../../../common/fetch/download-json.injectable";
|
||||
import { withTimeout } from "../../../../../../../common/fetch/timeout-controller";
|
||||
import type { HelmRepo } from "../../../../../../../common/helm/helm-repo";
|
||||
import loggerInjectable from "../../../../../../../common/logger.injectable";
|
||||
|
||||
const publicHelmReposUrl = "https://github.com/lensapp/artifact-hub-repositories/releases/download/latest/repositories.json";
|
||||
|
||||
const requestPublicHelmRepositoriesInjectable = getInjectable({
|
||||
id: "request-public-helm-repositories",
|
||||
|
||||
instantiate: (di) => {
|
||||
const downloadJson = di.inject(downloadJsonInjectable);
|
||||
const logger = di.inject(loggerInjectable);
|
||||
|
||||
return async (): Promise<HelmRepo[]> => {
|
||||
const controller = withTimeout(10_000);
|
||||
const result = await downloadJson(publicHelmReposUrl, {
|
||||
signal: controller.signal,
|
||||
});
|
||||
|
||||
if (!result.callWasSuccessful) {
|
||||
logger.warn(`Failed to download public helm repos: ${result.error}`);
|
||||
|
||||
return [];
|
||||
}
|
||||
|
||||
return sortBy(repo => repo.name, result.response as HelmRepo[]);
|
||||
};
|
||||
},
|
||||
|
||||
causesSideEffects: true,
|
||||
});
|
||||
|
||||
export default requestPublicHelmRepositoriesInjectable;
|
||||
@@ -14,7 +14,7 @@ import execFileInjectable, { type ExecFile } from "../../common/fs/exec-file.inj
|
||||
import helmBinaryPathInjectable from "../../main/helm/helm-binary-path.injectable";
|
||||
import loggerInjectable from "../../common/logger.injectable";
|
||||
import type { Logger } from "../../common/logger";
|
||||
import callForPublicHelmRepositoriesInjectable from "./child-features/preferences/renderer/adding-of-public-helm-repository/public-helm-repositories/call-for-public-helm-repositories.injectable";
|
||||
import requestPublicHelmRepositoriesInjectable from "./child-features/preferences/renderer/adding-of-public-helm-repository/public-helm-repositories/request-public-helm-repositories.injectable";
|
||||
import showErrorNotificationInjectable from "../../renderer/components/notifications/show-error-notification.injectable";
|
||||
|
||||
describe("listing active helm repositories in preferences", () => {
|
||||
@@ -43,7 +43,7 @@ describe("listing active helm repositories in preferences", () => {
|
||||
|
||||
builder.beforeWindowStart((windowDi) => {
|
||||
windowDi.override(showErrorNotificationInjectable, () => showErrorNotificationMock);
|
||||
windowDi.override(callForPublicHelmRepositoriesInjectable, () => async () => []);
|
||||
windowDi.override(requestPublicHelmRepositoriesInjectable, () => async () => []);
|
||||
});
|
||||
|
||||
rendered = await builder.render();
|
||||
|
||||
+2
-2
@@ -13,7 +13,7 @@ import execFileInjectable from "../../common/fs/exec-file.injectable";
|
||||
import helmBinaryPathInjectable from "../../main/helm/helm-binary-path.injectable";
|
||||
import getActiveHelmRepositoriesInjectable from "../../main/helm/repositories/get-active-helm-repositories/get-active-helm-repositories.injectable";
|
||||
import type { HelmRepo } from "../../common/helm/helm-repo";
|
||||
import callForPublicHelmRepositoriesInjectable from "./child-features/preferences/renderer/adding-of-public-helm-repository/public-helm-repositories/call-for-public-helm-repositories.injectable";
|
||||
import requestPublicHelmRepositoriesInjectable from "./child-features/preferences/renderer/adding-of-public-helm-repository/public-helm-repositories/request-public-helm-repositories.injectable";
|
||||
import type { AsyncResult } from "../../common/utils/async-result";
|
||||
|
||||
describe("remove helm repository from list of active repositories in preferences", () => {
|
||||
@@ -35,7 +35,7 @@ describe("remove helm repository from list of active repositories in preferences
|
||||
});
|
||||
|
||||
builder.beforeWindowStart((windowDi) => {
|
||||
windowDi.override(callForPublicHelmRepositoriesInjectable, () => async () => []);
|
||||
windowDi.override(requestPublicHelmRepositoriesInjectable, () => async () => []);
|
||||
});
|
||||
|
||||
rendered = await builder.render();
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
import type { RenderResult } from "@testing-library/react";
|
||||
import type { ApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder";
|
||||
import { getApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder";
|
||||
import callForPublicHelmRepositoriesInjectable from "../helm-charts/child-features/preferences/renderer/adding-of-public-helm-repository/public-helm-repositories/call-for-public-helm-repositories.injectable";
|
||||
import requestPublicHelmRepositoriesInjectable from "../helm-charts/child-features/preferences/renderer/adding-of-public-helm-repository/public-helm-repositories/request-public-helm-repositories.injectable";
|
||||
import getActiveHelmRepositoriesInjectable from "../../main/helm/repositories/get-active-helm-repositories/get-active-helm-repositories.injectable";
|
||||
import type { Discover } from "../../renderer/components/test-utils/discovery-of-html-elements";
|
||||
import { discoverFor } from "../../renderer/components/test-utils/discovery-of-html-elements";
|
||||
@@ -30,7 +30,7 @@ describe("preferences - navigation to kubernetes preferences", () => {
|
||||
});
|
||||
|
||||
builder.beforeWindowStart((windowDi) => {
|
||||
windowDi.override(callForPublicHelmRepositoriesInjectable, () => async () => []);
|
||||
windowDi.override(requestPublicHelmRepositoriesInjectable, () => async () => []);
|
||||
});
|
||||
|
||||
builder.beforeWindowStart(() => {
|
||||
|
||||
Reference in new issue
Block a user