@tanshenghu/web-utils
Version:
web公共方法
223 lines (186 loc) • 5.9 kB
TypeScript
import { $ajax } from "..";
type AjaxOpts = {
/**
* 接口请求url路径
*/
url: string,
/**
* 接口调用方式
* @default get
*/
type?: 'get' | 'post' | 'put' | 'patch' | 'delete' | 'head',
/**
* 接口所需传参对象
*/
data?: any,
/**
* 接口调用请求头(报文)
*/
headers?: {[K: string]: string},
/**
* 接口数据返回类型
* @default json
*/
dataType?: 'json' | 'text' | 'blob',
/**
* 其它个性化配置
*/
special?: object,
/**
* 接口调用之前触发
*/
beforeSend?: Function,
/**
* 接口调用成功时触发
*/
success?: Function,
/**
* 接口调用失败时触发
*/
error?: Function,
/**
* 接口调用完成后触发
*/
complete?: Function,
/**
* fetch其它剩余的配置项
*/
option?: object,
}
declare function $ajax(options: AjaxOpts): Promise<any>;
/**
* 接口GET调用方式
* @param {string} url - 接口地址
* @param {object} data - 接口参数
* @param {function} success - 接口调用成功回调
* @param {string} dataType - 响应数据类型
*/
declare function $get(url: string, data?: any, success?: (data, resModel) => void, dataType?: 'json' | 'text' | 'blob'): Promise<any>;
/**
* 接口POST调用方式
* @param {string} url - 接口地址
* @param {object} data - 接口参数
* @param {function} success - 接口调用成功回调
* @param {string} dataType - 响应数据类型
*/
declare function $post(url: string, data?: any, success?: (data, resModel) => void, dataType?: 'json' | 'text' | 'blob'): Promise<any>;
/**
* 接口PUT调用方式
* @param {string} url - 接口地址
* @param {object} data - 接口参数
* @param {function} success - 接口调用成功回调
* @param {string} dataType - 响应数据类型
*/
declare function $put(url: string, data?: any, success?: (data, resModel) => void, dataType?: 'json' | 'text' | 'blob'): Promise<any>;
/**
* 接口PATCH调用方式
* @param {string} url - 接口地址
* @param {object} data - 接口参数
* @param {function} success - 接口调用成功回调
* @param {string} dataType - 响应数据类型
*/
declare function $patch(url: string, data?: any, success?: (data, resModel) => void, dataType?: 'json' | 'text' | 'blob'): Promise<any>;
/**
* 接口DELETE调用方式
* @param {string} url - 接口地址
* @param {object} data - 接口参数
* @param {function} success - 接口调用成功回调
* @param {string} dataType - 响应数据类型
*/
declare function $delete(url: string, data?: any, success?: (data, resModel) => void, dataType?: 'json' | 'text' | 'blob'): Promise<any>;
/**
* 接口HEAD调用方式
* @param {string} url - 接口地址
* @param {object} data - 接口参数
* @param {function} success - 接口调用成功回调
* @param {string} dataType - 响应数据类型
*/
declare function $head(url: string, data?: any, success?: (data, resModel) => void, dataType?: 'json' | 'text' | 'blob'): Promise<any>;
/**
* 辅助方法
*/
declare namespace $ajax {
/**
* 接口返回的业务主体字段名称
*/
var bodyField: string
/**
* 设置接口统一域名
*/
var setBaseUrl: (ajaxBaseUrl: string, alone?: {test: string, host: string}[]) => void;
/**
* 获取接口统一域名
*/
var getBaseUrl: () => string;
/**
* 接口请求之前公共拦截器
*/
var injectBeforeSend: (callback: Function) => void;
/**
* 注入项目公用headers
* @param {object} headers - 注入接口请求报文header
*/
var injectHeaders: (headers: {[K: string]: string}) => void;
/**
* 取消项目公用headers
*/
var uninjectHeaders: () => void;
/**
* 注入共性事务处理方法 偏业务类型
* @param {function} callback - 回调事务处理
* @param {function} [errorCallback] - 接口服务异常回调事务处理
*/
var injectResponse: (callback: Function, errorCallback?: Function) => void;
/**
* 设置配置参数
*/
var set: (key: string, value: any, value2?: any) => void;
/**
* 设置样式
*/
var appendStyle: (colors: string) => void;
/**
* 提供内部某些常用的辅助方法
*/
var querystring: (params: {[K: string]: any}) => string;
}
/**
* 加载远程CSS,JS资源文件
* @param {string | array} attachSrc - js或者css服务端或cdn远程地址
* @param {function} [cb] - 加载成功之后回调
* @param {boolean} [remove = true] - 是否移除
*/
declare function $getScript(attachSrc: string | Array<string>, cb?: Function, remove?: boolean): Promise<any>;
/**
* jsonp实现方案
* @param {string} url - 接口地址
* @param {object} [params] - 接口参数
* @param {string} [callbackName="callback"] - callback名称,一般情况下不需要特定,用默认值即可
*/
declare function $jsonp(url: string, params?: {[K: string]: any}, callbackName?: 'string'): Promise<any>;
/**
* 提供一个简易版 ajax 方法,防止一些特殊情况需要
* @param {object} options.url - 接口路径url
* @param {object} options.type - 接口请求方式
* @param {object} options.name - 字段名称
* @param {object} options.data - 接口入参数据
* @param {object} options.withCredentials - 是否带上cookie待授权字段
* @param {object} options.headers - 请求头报文
* @param {object} options.success - 接口请求成功
* @param {object} options.error - 接口请求失败
* @param {object} options.complete - 接口请求完成
*/
declare function Ajax(options: AjaxOpts & {name?: string, withCredentials?: boolean}): XMLHttpRequest;
declare namespace Ajax {
var wrapper: (options: AjaxOpts) => Promise<any>;
}
export default $ajax;
export { $get }
export { $post }
export { $put }
export { $patch }
export { $delete }
export { $head }
export { Ajax }
export { $getScript }
export { $jsonp }