UNPKG

@snail-js/api

Version:

Http Request with Decorators Api, build on axios

50 lines (49 loc) 1.74 kB
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; }