jinaga
Version:
Data management for web and mobile applications.
54 lines • 2.13 kB
TypeScript
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