UNPKG

jinaga

Version:

Data management for web and mobile applications.

54 lines 2.13 kB
import { FactEnvelope } from "../storage"; import { PostAccept, PostContentType } from "./ContentType"; import { FeedResponse, FeedsResponse, LoadMessage, LoadResponse, LoginResponse } from "./messages"; export declare type SyncStatus = { sending: boolean; retrying: boolean; retryInSeconds: number; warning: string; }; export declare class SyncStatusNotifier { private syncStatusHandlers; onSyncStatus(handler: (status: SyncStatus) => void): void; notify(status: SyncStatus): void; } export interface HttpSuccess { result: "success"; response: {}; } export interface HttpFailure { result: "failure"; error: string; } export interface HttpRetry { result: "retry"; error: string; } export declare type HttpResponse = HttpSuccess | HttpFailure | HttpRetry; export interface HttpConnection { get(path: string): Promise<{}>; getStream(path: string, onResponse: (response: {}) => Promise<void>, onError: (err: Error) => void): () => void; post(path: string, contentType: PostContentType, accept: PostAccept, body: string, timeoutSeconds: number): Promise<HttpResponse>; getAcceptedContentTypes(path: string): Promise<string[]>; } export interface WebClientConfig { timeoutSeconds: number; } export declare class WebClient { private httpConnection; private syncStatusNotifier; private config; private saveContentTypes; constructor(httpConnection: HttpConnection, syncStatusNotifier: SyncStatusNotifier, config: WebClientConfig); login(): Promise<LoginResponse>; save(envelopes: FactEnvelope[]): Promise<void>; saveWithRetry(envelopes: FactEnvelope[]): Promise<void>; load(load: LoadMessage): Promise<LoadResponse>; loadWithRetry(load: LoadMessage): Promise<LoadResponse>; feeds(request: string): Promise<FeedsResponse>; feed(feed: string, bookmark: string): Promise<FeedResponse>; streamFeed(feed: string, bookmark: string, onResponse: (response: FeedResponse) => Promise<void>, onError: (err: Error) => void): () => void; private post; private postWithLimitedRetry; } //# sourceMappingURL=web-client.d.ts.map