mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Demonstrate a step further to have an interface as dependency instead of concrete instance
With this we get yet closer to satisfaction of Dependency Inversion Principle. Signed-off-by: Janne Savolainen <janne.savolainen@houston-inc.com>
This commit is contained in:
parent
8d0abcc9d5
commit
91b14ee3fc
@ -27,7 +27,11 @@ import type { KubeApi } from "./kube-api";
|
|||||||
import type { KubeObject } from "./kube-object";
|
import type { KubeObject } from "./kube-object";
|
||||||
import { IKubeObjectRef, parseKubeApi, createKubeApiURL } from "./kube-api-parse";
|
import { IKubeObjectRef, parseKubeApi, createKubeApiURL } from "./kube-api-parse";
|
||||||
|
|
||||||
export class ApiManager {
|
export interface IGettableStore {
|
||||||
|
getStore<TKubeObjectStore extends KubeObjectStore<KubeObject>>(api: string | KubeApi<KubeObject>): TKubeObjectStore | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class ApiManager implements IGettableStore {
|
||||||
private apis = observable.map<string, KubeApi<KubeObject>>();
|
private apis = observable.map<string, KubeApi<KubeObject>>();
|
||||||
private stores = observable.map<string, KubeObjectStore<KubeObject>>();
|
private stores = observable.map<string, KubeObjectStore<KubeObject>>();
|
||||||
|
|
||||||
|
|||||||
@ -26,8 +26,8 @@ import { MenuActions, MenuActionsProps } from "../menu/menu-actions";
|
|||||||
import identity from "lodash/identity";
|
import identity from "lodash/identity";
|
||||||
|
|
||||||
import type { KubeObjectMenuRegistry } from "../../../extensions/registries";
|
import type { KubeObjectMenuRegistry } from "../../../extensions/registries";
|
||||||
import type { ApiManager } from "../../../common/k8s-api/api-manager";
|
|
||||||
import type { CatalogEntityRegistry } from "../../api/catalog-entity-registry";
|
import type { CatalogEntityRegistry } from "../../api/catalog-entity-registry";
|
||||||
|
import type { IGettableStore } from "../../../common/k8s-api/api-manager";
|
||||||
|
|
||||||
|
|
||||||
export interface KubeObjectMenuProps<T> extends MenuActionsProps {
|
export interface KubeObjectMenuProps<T> extends MenuActionsProps {
|
||||||
@ -37,7 +37,7 @@ export interface KubeObjectMenuProps<T> extends MenuActionsProps {
|
|||||||
}
|
}
|
||||||
|
|
||||||
interface KubeObjectMenuDependencies<T> extends KubeObjectMenuProps<T>{
|
interface KubeObjectMenuDependencies<T> extends KubeObjectMenuProps<T>{
|
||||||
apiManager: ApiManager,
|
apiManager: IGettableStore,
|
||||||
hideDetails: Function,
|
hideDetails: Function,
|
||||||
editResourceTab: Function,
|
editResourceTab: Function,
|
||||||
catalogEntityRegistry: CatalogEntityRegistry,
|
catalogEntityRegistry: CatalogEntityRegistry,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user