UNPKG

@vyer-technologies/offline-first

Version:
63 lines 2.2 kB
import { CacheOptions } from '@vyer-technologies/cache-persist'; export type Request<T> = { payload: T; backup?: any; sink?: any; }; export type OfflineRecordCache<T> = { id: string; request: Request<T>; fetchTime: number; retry?: number; error?: any; serial?: boolean; }; export type OfflineFirstOptions<T> = { manualExecution?: boolean; execute: (offlineRecord: OfflineRecordCache<T>) => Promise<any>; start?: (mutations: Array<OfflineRecordCache<T>>) => Promise<Array<OfflineRecordCache<T>>>; onExecute?: (mutation: OfflineRecordCache<T>) => Promise<OfflineRecordCache<T>>; finish?: (mutations: ReadonlyArray<OfflineRecordCache<T>>, error?: Error) => Promise<void>; onComplete?: (options: { offlineRecord: OfflineRecordCache<T>; response: any; }) => Promise<boolean>; onDiscard?: (options: { offlineRecord: OfflineRecordCache<T>; error: any; }) => Promise<boolean>; onPublish?: (offlineRecord: OfflineRecordCache<T>) => Promise<OfflineRecordCache<T>>; compare?: (v1: OfflineRecordCache<T>, v2: OfflineRecordCache<T>) => number; }; export declare class OfflineFirst<T> { private offlineStore; private busy; private offlineOptions; private online; private rehydrated; private promisesRestore; private disposeListener; constructor(persistOptions?: CacheOptions); setOfflineOptions(offlineOptions?: OfflineFirstOptions<T>): void; purge(): Promise<boolean>; isManualExecution(): boolean; dispose(): void; hydrate(): Promise<boolean>; isOnline(): boolean; subscribe(callback: (state: any, action: any) => void): () => void; notify(): void; getState(): { [key: string]: any; }; remove(id: string): Promise<void>; set(id: string, value: OfflineRecordCache<T>): Promise<void>; getListMutation(): Array<OfflineRecordCache<T>>; process(): Promise<void>; executeMutation(offlineRecord: OfflineRecordCache<T>): Promise<void>; publish(options: { id?: string; request: Request<T>; serial?: boolean; }): Promise<OfflineRecordCache<T>>; } //# sourceMappingURL=index.d.ts.map