typed-wx-api
Version:
Typed Wechat API
34 lines (33 loc) • 1.09 kB
TypeScript
import { AccessToken, Ticket, TicketStorage, TokenStorage } from '../storage';
import { AxiosRequestConfig } from 'axios';
export type APIConfig = {
baseURL: string;
accessTokenKey?: string;
};
export type Logger = (message: any, ...args: any[]) => void;
/**
* @internal
*/
export declare abstract class APIBase {
readonly config: Required<APIConfig>;
private tokenStorage;
private ticketStorage;
private axiosInstance;
logger: Logger;
constructor(config: APIConfig, tokenStorage?: TokenStorage, ticketStorage?: TicketStorage);
request(opts: AxiosRequestConfig & {
ignoreAccessToken?: boolean;
}, retry?: number): Promise<any>;
abstract resolveAccessToken(): Promise<{
access_token: string;
expires_in: number;
}>;
getAccessToken(): Promise<AccessToken>;
ensureAccessToken(): Promise<AccessToken>;
abstract resolveTicket(type: string): Promise<{
ticket: string;
expires_in: number;
}>;
getTicket(type: string): Promise<Ticket>;
ensureTicket(type: string): Promise<Ticket>;
}