UNPKG

@mittwald/kubernetes

Version:

Kubernetes client library

46 lines (45 loc) 2.15 kB
import { MetadataObject } from "../types/meta"; import { INamespacedResourceClient } from "../resource"; export interface Store<TResource extends MetadataObject> { store(obj: TResource): Promise<void> | void; get(namespace: string, name: string): Promise<TResource | undefined> | TResource | undefined; pull(obj: TResource): Promise<void> | void; sync(objs: TResource[]): Promise<void> | void; } export interface ObservableStore<TResource extends MetadataObject> extends Store<TResource> { onStoredOrUpdated(fn: (obj: TResource) => any): void; onRemoved(fn: (obj: TResource) => any): void; onSynced(fn: (objs: TResource[]) => any): void; } export declare class ObservableStoreDecorator<TResource extends MetadataObject> implements ObservableStore<TResource> { private readonly inner; private readonly onStoreHandlers; private readonly onRemoveHandlers; private readonly onSyncedHandlers; constructor(inner: Store<TResource>); onStoredOrUpdated(fn: (obj: TResource) => any): void; onRemoved(fn: (obj: TResource) => any): void; onSynced(fn: (objs: TResource[]) => any): void; get(namespace: string, name: string): Promise<TResource | undefined> | TResource | undefined; pull(obj: TResource): Promise<void>; store(obj: TResource): Promise<void>; sync(objs: TResource[]): Promise<void>; } export declare class InMemoryStore<TResource extends MetadataObject> implements Store<TResource> { private objects; store(obj: TResource): void; pull(obj: TResource): void; sync(objs: TResource[]): Promise<void>; get(namespace: string, name: string): TResource | undefined; } export declare class CachingLookupStore<TResource extends MetadataObject> implements Store<TResource> { private readonly api; private readonly expirationSeconds; private cache; constructor(api: INamespacedResourceClient<any, any, any, TResource>, expirationSeconds?: number); private storeInMap; store(obj: TResource): void; sync(objs: TResource[]): void; get(namespace: string, name: string): Promise<TResource | undefined>; pull(obj: TResource): void; }