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

Fix extension API (#6947)

- Make sure that dependency constructors are not exported
- Readd `KubeJsonApi.forCluster`

Signed-off-by: Sebastian Malton <sebastian@malton.name>

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton 2023-01-16 07:04:43 -08:00 committed by GitHub
parent e1abea0488
commit 5c9dc034b7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -27,6 +27,10 @@ import { getLegacyGlobalDiForExtensionApi } from "../as-legacy-globals-for-exten
import maybeKubeApiInjectable from "../../common/k8s-api/maybe-kube-api.injectable"; import maybeKubeApiInjectable from "../../common/k8s-api/maybe-kube-api.injectable";
import { DeploymentApi as InternalDeploymentApi, IngressApi as InternalIngressApi, NodeApi, PersistentVolumeClaimApi, PodApi } from "../../common/k8s-api/endpoints"; import { DeploymentApi as InternalDeploymentApi, IngressApi as InternalIngressApi, NodeApi, PersistentVolumeClaimApi, PodApi } from "../../common/k8s-api/endpoints";
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 type { JsonApiConfig } from "../../common/k8s-api/json-api";
import type { KubeJsonApi as InternalKubeJsonApi } from "../../common/k8s-api/kube-json-api";
import createKubeJsonApiInjectable from "../../common/k8s-api/create-kube-json-api.injectable";
import type { RequestInit } from "node-fetch";
export const apiManager = asLegacyGlobalForExtensionApi(apiManagerInjectable); export const apiManager = asLegacyGlobalForExtensionApi(apiManagerInjectable);
export const forCluster = asLegacyGlobalFunctionForExtensionApi(createKubeApiForClusterInjectable); export const forCluster = asLegacyGlobalFunctionForExtensionApi(createKubeApiForClusterInjectable);
@ -107,11 +111,24 @@ export {
type KubeStatusData, type KubeStatusData,
} from "../../common/k8s-api/kube-object"; } from "../../common/k8s-api/kube-object";
export { export type {
KubeJsonApi, KubeJsonApiData,
type KubeJsonApiData,
} from "../../common/k8s-api/kube-json-api"; } from "../../common/k8s-api/kube-json-api";
function KubeJsonApiCstr(config: JsonApiConfig, reqInit?: RequestInit) {
const di = getLegacyGlobalDiForExtensionApi();
const createKubeJsonApi = di.inject(createKubeJsonApiInjectable);
return createKubeJsonApi(config, reqInit);
}
export const KubeJsonApi = Object.assign(
KubeJsonApiCstr as unknown as new (config: JsonApiConfig, reqInit?: RequestInit) => InternalKubeJsonApi,
{
forCluster,
},
);
export abstract class KubeObjectStore< export abstract class KubeObjectStore<
K extends KubeObject = KubeObject, K extends KubeObject = KubeObject,
A extends InternalKubeApi<K, D> = InternalKubeApi<K, KubeJsonApiDataFor<K>>, A extends InternalKubeApi<K, D> = InternalKubeApi<K, KubeJsonApiDataFor<K>>,