UNPKG

@looker/embed-services

Version:
39 lines (38 loc) 1.42 kB
import type { IAPIMethods } from '@looker/sdk-rtl'; import { EntityService } from './EntityService'; export declare const DEFAULT_TTL = 900; export interface GetOptions { useCache?: boolean; [key: string]: any; } export interface IItemList<T extends Record<string, any>> { readonly timeToLive: number; items: T[]; readonly expiresAt: number; index(key?: keyof T): ItemList<T>; indexedItems: Record<string, T>; expired(): boolean; setExpiration(): void; clearIfExpired(): void; find(key: keyof T | Array<keyof T>, value: any): T | undefined; getCacheDefault(options?: GetOptions): boolean; } export interface IEntityService<T extends Record<string, any>> extends IItemList<T> { get(id: string, options?: GetOptions): Promise<T>; set(id: string, item: T): Promise<T>; getAll(...options: any[]): Promise<IItemList<T>>; delete(id: string): void; } export declare abstract class ItemList<T extends Record<string, any>> extends EntityService implements IItemList<T> { items: T[]; indexedItems: Record<string, T>; expiresAt: number; private keyField; constructor(sdk: IAPIMethods, timeToLive?: number); index(key?: keyof T): this; setExpiration(): void; expired(): boolean; clearIfExpired(): void; find(key: keyof T | Array<keyof T>, expression: string): T | undefined; getCacheDefault(options?: GetOptions): boolean; }