skysync-cli
Version:
SkySync Command Line Interface
65 lines (64 loc) • 3.31 kB
TypeScript
/// <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>;
}