UNPKG

skysync-cli

Version:

SkySync Command Line Interface

65 lines (64 loc) 3.31 kB
/// <reference types="node" /> import { Readable } from 'stream'; import { CancellationToken } from '../cancellation-token'; export interface IAuthorizationToken { resource?: string; offline?: boolean; scope?: string; username?: string; password?: string; accessToken?: string; refreshToken?: string; onTokenUpdated?: (rawToken: any) => void; onTokenInvalid?: () => void; } export interface IHttpClient { isLoggedIn: boolean; shouldPost(path: string, params: any): boolean; authenticate(): Promise<any>; logout(): Promise<any>; getAccessToken(): Promise<string>; get(path: string, params?: any, token?: CancellationToken): Promise<any>; download(path: string, handler: (fileName: string, output: Readable) => Promise<any>, token?: CancellationToken): Promise<any>; upload(path: string, formData: FormData, params?: any, token?: CancellationToken): Promise<any>; post(path: string, body: any, params?: any, token?: CancellationToken): Promise<any>; put(path: string, body: any, params?: any, token?: CancellationToken): Promise<any>; patch(path: string, body: any, params?: any, token?: CancellationToken): Promise<any>; delete(path: string, params?: any, token?: CancellationToken): Promise<boolean>; } export declare class HttpError extends Error { status: any; errors?: any; constructor(message: any, status: any, errors?: any); } export declare abstract class HttpClient<TRequest, TResponse> implements IHttpClient { protected baseAddress: string; private token; private accessToken; private lastAccessToken; private readonly scope; private readonly apiUrl; private readonly isAuthRequired; constructor(baseAddress: string, token: IAuthorizationToken, site?: string); static getUrl(requestPath: string, baseUrl?: string, params?: any): string; get isLoggedIn(): boolean; shouldPost(path: string, params: any): boolean; authenticate(): Promise<any>; logout(): Promise<void>; getAccessToken(): Promise<string>; protected abstract executeJsonRequest(req: TRequest, callback: (err: any, response: TResponse, body: string) => void, token?: CancellationToken): any; protected abstract getStatusCode(response: TResponse): number; protected abstract getHeadersValue(headers: any, key: string): string; private getError; private executeApiRequest; abstract download(path: string, handler: (fileName: string, output: Readable) => Promise<any>, token?: CancellationToken): any; upload(path: string, formData: FormData, params?: any, token?: CancellationToken): Promise<any>; protected getOptions(path: string, options: any): Promise<any>; protected parseContentDispositionHeader(headers: any): string; get(path: string, params?: any, token?: CancellationToken): Promise<any>; private executePost; post(path: string, body: any, params?: any, token?: CancellationToken): Promise<any>; put(path: string, body: any, params?: any, token?: CancellationToken): Promise<any>; patch(path: string, body: any, params?: any, token?: CancellationToken): Promise<any>; delete(path: string, params?: any, token?: CancellationToken): Promise<boolean>; }