@snail-js/api
Version:
Http Request with Decorators Api, build on axios
50 lines (49 loc) • 1.74 kB
TypeScript
import { AxiosResponse, AxiosRequestConfig } from "axios";
import { Strategy, ResponseData, StandardResponseData, SnailSuccessListener, SnailErrorListener, SnailHitCacheListener, SnailFinishListener } from "../typings";
import { SnailApi } from "./snailApi";
/**
* SnailMethod
* 泛型参数: RT => response.data类型,默认标准json返回
* DK => response.data.data 类型
*/
export declare class SnailMethod<RT extends ResponseData = StandardResponseData> {
private Name;
private apiInstance;
private target;
private strategies;
private Request;
private Response;
private Error;
private EventEmit;
private propertyKey;
private Url;
private Path;
private Method;
private Adapter;
private Version?;
constructor(apiInstance: SnailApi, target: Object, propertyKey: string | symbol);
send: (...args: any) => Promise<unknown>;
private init;
private initUrl;
private initVersion;
private getExpireSources;
private createRequest;
onSuccess: (listener: SnailSuccessListener<RT>) => void;
onError: <ErrorData = any>(listener: SnailErrorListener<RT, ErrorData>) => void;
onHitCache: (listener: SnailHitCacheListener<RT>) => void;
onFinish: (listener: SnailFinishListener<RT>) => void;
private getCacheData;
private setCacheData;
get response(): AxiosResponse<RT, any>;
get request(): AxiosRequestConfig<any>;
get version(): string | undefined;
get name(): string;
get error(): any;
registerStrategies: (...strategys: Array<new () => Strategy>) => void;
private getStrategies;
private getMethodOptions;
private isNoCache;
private enableLog;
private applyHitSource;
private applyProgress;
}