@joshuaavalon/cloudflare-dns-api
Version:
Cloudflare DDNS api wrapper.
37 lines (36 loc) • 1.07 kB
TypeScript
import { AxiosRequestConfig, AxiosResponse } from "axios";
import { ApiResponse, ListParameter } from "./model";
export declare const axiosInstance: import("axios").AxiosInstance;
export interface GlobalAuth {
/**
* Cloudflare account email
*/
email: string;
/**
* Cloudflare API Key
*/
globalToken: string;
}
export interface ScopedAuth {
/**
* Cloudflare API token
*/
scopedToken: string;
}
export declare type Auth = GlobalAuth | ScopedAuth;
export declare type ApiRequest<TParam, TData> = {
baseURL?: string;
auth: Auth;
} & (TParam extends undefined ? {
params?: ListParameter & TParam;
} : {
params: ListParameter & TParam;
}) & (TData extends undefined ? {
data?: TData;
} : {
data: TData;
});
export declare const createRequestConfig: (req: ApiRequest<any, any>) => AxiosRequestConfig;
export interface Api<TResult, TParam = undefined, TData = undefined, TArg = Record<string, unknown>> {
(req: ApiRequest<TParam, TData> & TArg): Promise<AxiosResponse<ApiResponse<TResult>>>;
}