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

Remove legacy apiBase global

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton 2022-08-12 09:10:44 -04:00
parent 2478136635
commit 2909674beb
6 changed files with 10 additions and 52 deletions

View File

@ -5,13 +5,7 @@
import type { JsonApi } from "./json-api"; import type { JsonApi } from "./json-api";
import { getInjectionToken } from "@ogre-tools/injectable"; import { getInjectionToken } from "@ogre-tools/injectable";
import { asLegacyGlobalForExtensionApi } from "../../extensions/as-legacy-globals-for-extension-api/as-legacy-global-object-for-extension-api";
export const apiBaseInjectionToken = getInjectionToken<JsonApi>({ export const apiBaseInjectionToken = getInjectionToken<JsonApi>({
id: "api-base-token", id: "api-base-token",
}); });
/**
* @deprecated switch to using apiBaseInjectionToken instead
*/
export const apiBase = asLegacyGlobalForExtensionApi(apiBaseInjectionToken);

View File

@ -3,5 +3,4 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
export { apiBase } from "./api-base";
export { apiKube } from "./api-kube"; export { apiKube } from "./api-kube";

View File

@ -1,17 +0,0 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import type { Response } from "node-fetch";
import type { JsonApiErrorParsed } from "../../common/k8s-api/json-api";
import { Notifications } from "../components/notifications";
export function onApiError(error: JsonApiErrorParsed, res: Response) {
switch (res.status) {
case 403:
error.isUsedForNotification = true;
Notifications.error(error);
break;
}
}

View File

@ -1,24 +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 { apiBase } from "../../common/k8s-api";
import { onApiError } from "./on-api-error";
import { beforeFrameStartsInjectionToken } from "../before-frame-starts/before-frame-starts-injection-token";
const setupOnApiErrorListenersInjectable = getInjectable({
id: "setup-on-api-error-listeners",
instantiate: () => ({
id: "setup-on-api-error-listeners",
run: () => {
apiBase?.onError.addListener(onApiError);
},
}),
injectionToken: beforeFrameStartsInjectionToken,
causesSideEffects: true,
});
export default setupOnApiErrorListenersInjectable;

View File

@ -32,7 +32,6 @@ import { ApiManager } from "../common/k8s-api/api-manager";
import lensResourcesDirInjectable from "../common/vars/lens-resources-dir.injectable"; import lensResourcesDirInjectable from "../common/vars/lens-resources-dir.injectable";
import broadcastMessageInjectable from "../common/ipc/broadcast-message.injectable"; import broadcastMessageInjectable from "../common/ipc/broadcast-message.injectable";
import apiManagerInjectable from "../common/k8s-api/api-manager/manager.injectable"; import apiManagerInjectable from "../common/k8s-api/api-manager/manager.injectable";
import setupOnApiErrorListenersInjectable from "./api/setup-on-api-errors.injectable";
import { observable, computed, runInAction } from "mobx"; import { observable, computed, runInAction } from "mobx";
import defaultShellInjectable from "./components/+preferences/default-shell.injectable"; import defaultShellInjectable from "./components/+preferences/default-shell.injectable";
import requestAnimationFrameInjectable from "./components/animate/request-animation-frame.injectable"; import requestAnimationFrameInjectable from "./components/animate/request-animation-frame.injectable";
@ -109,7 +108,6 @@ export const getDiForUnitTesting = (
[ [
startTopbarStateSyncInjectable, startTopbarStateSyncInjectable,
setupSystemCaInjectable, setupSystemCaInjectable,
setupOnApiErrorListenersInjectable,
].forEach((injectable) => { ].forEach((injectable) => {
di.override(injectable, () => ({ di.override(injectable, () => ({
id: injectable.id, id: injectable.id,

View File

@ -4,12 +4,12 @@
*/ */
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import assert from "assert"; import assert from "assert";
import { onApiError } from "../api/on-api-error";
import { apiKubePrefix } from "../../common/vars"; import { apiKubePrefix } from "../../common/vars";
import { apiKubeInjectionToken } from "../../common/k8s-api/api-kube"; import { apiKubeInjectionToken } from "../../common/k8s-api/api-kube";
import { storesAndApisCanBeCreatedInjectionToken } from "../../common/k8s-api/stores-apis-can-be-created.token"; import { storesAndApisCanBeCreatedInjectionToken } from "../../common/k8s-api/stores-apis-can-be-created.token";
import createKubeJsonApiInjectable from "../../common/k8s-api/create-kube-json-api.injectable"; import createKubeJsonApiInjectable from "../../common/k8s-api/create-kube-json-api.injectable";
import isDevelopmentInjectable from "../../common/vars/is-development.injectable"; import isDevelopmentInjectable from "../../common/vars/is-development.injectable";
import showErrorNotificationInjectable from "../components/notifications/show-error-notification.injectable";
const apiKubeInjectable = getInjectable({ const apiKubeInjectable = getInjectable({
id: "api-kube", id: "api-kube",
@ -17,6 +17,7 @@ const apiKubeInjectable = getInjectable({
assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "apiKube is only available in certain environments"); assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "apiKube is only available in certain environments");
const createKubeJsonApi = di.inject(createKubeJsonApiInjectable); const createKubeJsonApi = di.inject(createKubeJsonApiInjectable);
const isDevelopment = di.inject(isDevelopmentInjectable); const isDevelopment = di.inject(isDevelopmentInjectable);
const showErrorNotification = di.inject(showErrorNotificationInjectable);
const apiKube = createKubeJsonApi({ const apiKube = createKubeJsonApi({
serverAddress: `http://127.0.0.1:${window.location.port}`, serverAddress: `http://127.0.0.1:${window.location.port}`,
@ -28,7 +29,14 @@ const apiKubeInjectable = getInjectable({
}, },
}); });
apiKube.onError.addListener(onApiError); apiKube.onError.addListener((error, res) => {
switch (res.status) {
case 403:
error.isUsedForNotification = true;
showErrorNotification(error);
break;
}
});
return apiKube; return apiKube;
}, },