@mittwald/kubernetes
Version:
Kubernetes client library
37 lines (36 loc) • 1.39 kB
TypeScript
import { MetadataObject } from "../types/meta";
import { INamespacedResourceClient } from "../resource";
export interface Store<R extends MetadataObject> {
store(obj: R): void;
get(namespace: string, name: string): Promise<R | undefined>;
pull(obj: R): void;
}
export interface ObservableStore<R extends MetadataObject> extends Store<R> {
onStoredOrUpdated(fn: (obj: R) => any): void;
onRemoved(fn: (obj: R) => any): void;
}
export declare class ObservableStoreDecorator<R extends MetadataObject> implements ObservableStore<R> {
private inner;
private onStoreHandlers;
private onRemoveHandlers;
constructor(inner: Store<R>);
onStoredOrUpdated(fn: (obj: R) => any): void;
onRemoved(fn: (obj: R) => any): void;
get(namespace: string, name: string): Promise<R | undefined>;
pull(obj: R): void;
store(obj: R): void;
}
export declare class InMemoryStore<R extends MetadataObject> implements Store<R> {
private objects;
store(obj: R): void;
pull(obj: R): void;
get(namespace: string, name: string): Promise<R | undefined>;
}
export declare class CachingLookupStore<R extends MetadataObject> implements Store<R> {
private api;
private cache;
constructor(api: INamespacedResourceClient<R, any, any>);
store(obj: R): void;
get(namespace: string, name: string): Promise<R | undefined>;
pull(obj: R): void;
}