UNPKG

@mittwald/kubernetes

Version:

Kubernetes client library

37 lines (36 loc) 1.39 kB
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; }