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

allow to pass KubeObjectStore.api via constructor

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
This commit is contained in:
Jari Kolehmainen 2021-08-12 10:00:55 +03:00
parent 487173dc04
commit 53b220b2f9
2 changed files with 9 additions and 6 deletions

View File

@ -42,7 +42,7 @@ export interface KubeObjectStoreLoadingParams<K extends KubeObject> {
export abstract class KubeObjectStore<T extends KubeObject> extends ItemStore<T> {
static defaultContext = observable.box<ClusterContext>(); // TODO: support multiple cluster contexts
abstract api: KubeApi<T>;
declare public api: KubeApi<T>;
public readonly limit?: number;
public readonly bufferSize: number = 50000;
@observable private loadedNamespaces?: string[];
@ -55,8 +55,14 @@ export abstract class KubeObjectStore<T extends KubeObject> extends ItemStore<T>
return when(() => Boolean(this.loadedNamespaces));
}
constructor() {
constructor(api?: KubeApi<T>) {
super();
if (api) this.api = api;
if (!this.api) {
throw new Error("api is not defined");
}
makeObservable(this);
autoBind(this);
this.bindWatchEventsUpdater();

View File

@ -24,10 +24,7 @@ import { KubeObjectStore } from "../../../common/k8s-api/kube-object.store";
import type { KubeObject } from "../../../common/k8s-api/kube-object";
export class CRDResourceStore<K extends KubeObject> extends KubeObjectStore<K> {
api: KubeApi<K>;
constructor(api: KubeApi<K>) {
super();
this.api = api;
super(api);
}
}