first commit
This commit is contained in:
commit
dc5fba137c
453 files changed
+85995
No files matched your search
@@ -0,0 +1 @@
|
||||
!function(e,n){"function"==typeof define&&(define.amd||define.cmd)?define(function(){return n(e)}):n(e,!0)}(window,function(o,e){if(!o.jWeixin){var n,c={config:"preVerifyJSAPI",onMenuShareTimeline:"menu:share:timeline",onMenuShareAppMessage:"menu:share:appmessage",onMenuShareQQ:"menu:share:qq",onMenuShareWeibo:"menu:share:weiboApp",onMenuShareQZone:"menu:share:QZone",previewImage:"imagePreview",getLocation:"geoLocation",openProductSpecificView:"openProductViewWithPid",addCard:"batchAddCard",openCard:"batchViewCard",chooseWXPay:"getBrandWCPayRequest",openEnterpriseRedPacket:"getRecevieBizHongBaoRequest",startSearchBeacons:"startMonitoringBeacons",stopSearchBeacons:"stopMonitoringBeacons",onSearchBeacons:"onBeaconsInRange",consumeAndShareCard:"consumedShareCard",openAddress:"editAddress"},a=function(){var e={};for(var n in c)e[c[n]]=n;return e}(),i=o.document,t=i.title,r=navigator.userAgent.toLowerCase(),s=navigator.platform.toLowerCase(),d=!(!s.match("mac")&&!s.match("win")),u=-1!=r.indexOf("wxdebugger"),l=-1!=r.indexOf("micromessenger"),p=-1!=r.indexOf("android"),f=-1!=r.indexOf("iphone")||-1!=r.indexOf("ipad"),m=(n=r.match(/micromessenger\/(\d+\.\d+\.\d+)/)||r.match(/micromessenger\/(\d+\.\d+)/))?n[1]:"",g={initStartTime:L(),initEndTime:0,preVerifyStartTime:0,preVerifyEndTime:0},h={version:1,appId:"",initTime:0,preVerifyTime:0,networkType:"",isPreVerifyOk:1,systemType:f?1:p?2:-1,clientVersion:m,url:encodeURIComponent(location.href)},v={},S={_completes:[]},y={state:0,data:{}};O(function(){g.initEndTime=L()});var I=!1,_=[],w={config:function(e){B("config",v=e);var t=!1!==v.check;O(function(){if(t)M(c.config,{verifyJsApiList:C(v.jsApiList),verifyOpenTagList:C(v.openTagList)},function(){S._complete=function(e){g.preVerifyEndTime=L(),y.state=1,y.data=e},S.success=function(e){h.isPreVerifyOk=0},S.fail=function(e){S._fail?S._fail(e):y.state=-1};var t=S._completes;return t.push(function(){!function(){if(!(d||u||v.debug||m<"6.0.2"||h.systemType<0)){var i=new Image;h.appId=v.appId,h.initTime=g.initEndTime-g.initStartTime,h.preVerifyTime=g.preVerifyEndTime-g.preVerifyStartTime,w.getNetworkType({isInnerInvoke:!0,success:function(e){h.networkType=e.networkType;var n="https://open.weixin.qq.com/sdk/report?v="+h.version+"&o="+h.isPreVerifyOk+"&s="+h.systemType+"&c="+h.clientVersion+"&a="+h.appId+"&n="+h.networkType+"&i="+h.initTime+"&p="+h.preVerifyTime+"&u="+h.url;i.src=n}})}}()}),S.complete=function(e){for(var n=0,i=t.length;n<i;++n)t[n]();S._completes=[]},S}()),g.preVerifyStartTime=L();else{y.state=1;for(var e=S._completes,n=0,i=e.length;n<i;++n)e[n]();S._completes=[]}}),w.invoke||(w.invoke=function(e,n,i){o.WeixinJSBridge&&WeixinJSBridge.invoke(e,x(n),i)},w.on=function(e,n){o.WeixinJSBridge&&WeixinJSBridge.on(e,n)})},ready:function(e){0!=y.state?e():(S._completes.push(e),!l&&v.debug&&e())},error:function(e){m<"6.0.2"||(-1==y.state?e(y.data):S._fail=e)},checkJsApi:function(e){M("checkJsApi",{jsApiList:C(e.jsApiList)},(e._complete=function(e){if(p){var n=e.checkResult;n&&(e.checkResult=JSON.parse(n))}e=function(e){var n=e.checkResult;for(var i in n){var t=a[i];t&&(n[t]=n[i],delete n[i])}return e}(e)},e))},onMenuShareTimeline:function(e){P(c.onMenuShareTimeline,{complete:function(){M("shareTimeline",{title:e.title||t,desc:e.title||t,img_url:e.imgUrl||"",link:e.link||location.href,type:e.type||"link",data_url:e.dataUrl||""},e)}},e)},onMenuShareAppMessage:function(n){P(c.onMenuShareAppMessage,{complete:function(e){"favorite"===e.scene?M("sendAppMessage",{title:n.title||t,desc:n.desc||"",link:n.link||location.href,img_url:n.imgUrl||"",type:n.type||"link",data_url:n.dataUrl||""}):M("sendAppMessage",{title:n.title||t,desc:n.desc||"",link:n.link||location.href,img_url:n.imgUrl||"",type:n.type||"link",data_url:n.dataUrl||""},n)}},n)},onMenuShareQQ:function(e){P(c.onMenuShareQQ,{complete:function(){M("shareQQ",{title:e.title||t,desc:e.desc||"",img_url:e.imgUrl||"",link:e.link||location.href},e)}},e)},onMenuShareWeibo:function(e){P(c.onMenuShareWeibo,{complete:function(){M("shareWeiboApp",{title:e.title||t,desc:e.desc||"",img_url:e.imgUrl||"",link:e.link||location.href},e)}},e)},onMenuShareQZone:function(e){P(c.onMenuShareQZone,{complete:function(){M("shareQZone",{title:e.title||t,desc:e.desc||"",img_url:e.imgUrl||"",link:e.link||location.href},e)}},e)},updateTimelineShareData:function(e){M("updateTimelineShareData",{title:e.title,link:e.link,imgUrl:e.imgUrl},e)},updateAppMessageShareData:function(e){M("updateAppMessageShareData",{title:e.title,desc:e.desc,link:e.link,imgUrl:e.imgUrl},e)},startRecord:function(e){M("startRecord",{},e)},stopRecord:function(e){M("stopRecord",{},e)},onVoiceRecordEnd:function(e){P("onVoiceRecordEnd",e)},playVoice:function(e){M("playVoice",{localId:e.localId},e)},pauseVoice:function(e){M("pauseVoice",{localId:e.localId},e)},stopVoice:function(e){M("stopVoice",{localId:e.localId},e)},onVoicePlayEnd:function(e){P("onVoicePlayEnd",e)},uploadVoice:function(e){M("uploadVoice",{localId:e.localId,isShowProgLine truncated
|
||||
@@ -0,0 +1,640 @@
|
||||
/* !
|
||||
* uni-axios-ts
|
||||
* library v0.0.4
|
||||
* github address https://gitee.com/codeweb/uni-axios-ts.git
|
||||
*
|
||||
* (c) 2019.12 xtshadow
|
||||
*/
|
||||
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||
typeof define === 'function' && define.amd ? define(factory) :
|
||||
(global = global || self, global.axios = factory());
|
||||
}(this, (function () { 'use strict';
|
||||
|
||||
/**
|
||||
* 请求Method类型
|
||||
*/
|
||||
var Method;
|
||||
|
||||
(function (Method) {
|
||||
Method["GET"] = "GET";
|
||||
Method["POST"] = "POST";
|
||||
Method["PUT"] = "PUT";
|
||||
Method["HEAD"] = "HEAD";
|
||||
Method["DELETE"] = "DELETE";
|
||||
Method["TRACE"] = "TRACE";
|
||||
Method["CONNECT"] = "CONNECT";
|
||||
Method["OPTIONS"] = "OPTIONS";
|
||||
})(Method || (Method = {}));
|
||||
/**
|
||||
* 响应的数据类型
|
||||
*/
|
||||
|
||||
|
||||
var HttpResponseType;
|
||||
|
||||
(function (HttpResponseType) {
|
||||
HttpResponseType["TEXT"] = "text";
|
||||
HttpResponseType["ARRAYBUFFER"] = "arraybuffer";
|
||||
})(HttpResponseType || (HttpResponseType = {}));
|
||||
|
||||
var AxiosError =
|
||||
/*@__PURE__*/
|
||||
function (Error) {
|
||||
function AxiosError(message, statusCode, config, request, response) {
|
||||
Error.call(this, message);
|
||||
this.config = config;
|
||||
this.statusCode = statusCode;
|
||||
this.request = request;
|
||||
this.response = response;
|
||||
Object.setPrototypeOf(this, AxiosError.prototype);
|
||||
}
|
||||
|
||||
if (Error) AxiosError.__proto__ = Error;
|
||||
AxiosError.prototype = Object.create(Error && Error.prototype);
|
||||
AxiosError.prototype.constructor = AxiosError;
|
||||
return AxiosError;
|
||||
}(Error);
|
||||
function createError(message, statusCode, config, request, response) {
|
||||
var error = new AxiosError(message, statusCode, config, request, response);
|
||||
return error;
|
||||
}
|
||||
|
||||
/**
|
||||
* 执行请求,调用微信Request方法
|
||||
* @param config
|
||||
*/
|
||||
|
||||
function wxRequest(config) {
|
||||
var url = config.url;
|
||||
var method = config.method;
|
||||
if (method === void 0) method = Method.GET;
|
||||
var data = config.data;
|
||||
if (data === void 0) data = {};
|
||||
var header = config.header;
|
||||
if (header === void 0) header = {};
|
||||
var responseType = config.responseType;
|
||||
if (responseType === void 0) responseType = HttpResponseType.TEXT;
|
||||
var cancelToken = config.cancelToken;
|
||||
var validateStatus = config.validateStatus;
|
||||
return new Promise(function (resolve, reject) {
|
||||
// @ts-ignore
|
||||
var requestTask = uni.request({
|
||||
url: url,
|
||||
header: header,
|
||||
method: method,
|
||||
data: data,
|
||||
responseType: responseType,
|
||||
success: function success(res) {
|
||||
var response = {
|
||||
data: res.data,
|
||||
statusCode: res.statusCode,
|
||||
header: res.header
|
||||
};
|
||||
|
||||
if (!validateStatus || validateStatus(res.statusCode)) {
|
||||
resolve(response);
|
||||
} else {
|
||||
reject(createError("Request failed with status code " + response.statusCode, response.statusCode, config, requestTask, response));
|
||||
}
|
||||
},
|
||||
fail: function fail(error) {
|
||||
reject(createError("Net Error", 1001, config, requestTask));
|
||||
}
|
||||
}); // 请求取消
|
||||
|
||||
if (cancelToken) {
|
||||
cancelToken.promise.then(function (reason) {
|
||||
requestTask.abort();
|
||||
reject(reason);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function _typeof(obj) {
|
||||
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
|
||||
_typeof = function (obj) {
|
||||
return typeof obj;
|
||||
};
|
||||
} else {
|
||||
_typeof = function (obj) {
|
||||
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
|
||||
};
|
||||
}
|
||||
|
||||
return _typeof(obj);
|
||||
}
|
||||
|
||||
var toString = Object.prototype.toString;
|
||||
/**
|
||||
* Determine if a value is an Array
|
||||
*
|
||||
* @param {Object} val The value to test
|
||||
* @returns {boolean} True if value is an Array, otherwise false
|
||||
*/
|
||||
|
||||
function isArray(val) {
|
||||
return toString.call(val) === '[object Array]';
|
||||
}
|
||||
/**
|
||||
* 确定值是否为对象
|
||||
*
|
||||
* @param {Object} val 要测试的值
|
||||
* @returns {boolean} 如果值是对象,则为true;否则为false
|
||||
*/
|
||||
|
||||
function isObject(val) {
|
||||
return val !== null && _typeof(val) === 'object';
|
||||
}
|
||||
/**
|
||||
* 迭代Array或为每个项目调用函数的对象。
|
||||
*
|
||||
* 如果`obj`为数组回调将被调用传递。
|
||||
* 每项的值、索引和完整数组。
|
||||
*
|
||||
* 如果`obj`是一个对象回调将被调用传递。
|
||||
* 每个属性的值、键和Complete对象。
|
||||
*
|
||||
* @param{object|Array} obj要迭代的对象。
|
||||
* @param{function} fn要为每个项调用的回调。
|
||||
*/
|
||||
|
||||
function forEach(obj, fn) {
|
||||
if (obj !== null && typeof obj !== 'undefined') {
|
||||
// Force an array if not already something iterable
|
||||
// 数组也属于对象
|
||||
if (_typeof(obj) !== 'object') {
|
||||
/*eslint no-param-reassign:0*/
|
||||
obj = [obj];
|
||||
}
|
||||
|
||||
if (isArray(obj)) {
|
||||
// Iterate over array values
|
||||
for (var i = 0, l = obj.length; i < l; i++) {
|
||||
fn.call(null, obj[i], i, obj);
|
||||
}
|
||||
} else {
|
||||
// Iterate over object keys
|
||||
Object.getOwnPropertyNames(obj).forEach(function (key) {
|
||||
if (Object.prototype.hasOwnProperty.call(obj, key) && key !== 'constructor') {
|
||||
fn.call(null, obj[key], key, obj);
|
||||
}
|
||||
}); // for (let key in obj) {
|
||||
// console.log(`forin key:${key}`);
|
||||
// if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
||||
// console.log(`callback:${key}`)
|
||||
// fn.call(null, obj[key], key, obj);
|
||||
// }
|
||||
// }
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 通过可变地向`对象A`添加`对象B`的属性来扩展`对象A`
|
||||
*
|
||||
* @param {Object} a 要扩展的对象
|
||||
* @param {Object} b 要从中复制属性的对象
|
||||
* @param {Object} thisArg 要将函数绑定到的对象
|
||||
* @return {Object} 对象a的结果
|
||||
*/
|
||||
|
||||
function extend(a, b, thisArg) {
|
||||
forEach(b, function assignValue(val, key) {
|
||||
if (thisArg && typeof val === 'function') {
|
||||
// a[key] = bind(val, thisArg);
|
||||
a[key] = val.bind(thisArg);
|
||||
} else {
|
||||
a[key] = val;
|
||||
}
|
||||
});
|
||||
return a;
|
||||
}
|
||||
/**
|
||||
* 函数等于merge,差值为无引用
|
||||
* 保留为原始对象
|
||||
* @see merge
|
||||
* @param {Object} obj1 Object to merge
|
||||
* @returns {Object} Result of all merge properties
|
||||
*/
|
||||
|
||||
function deepMerge() {
|
||||
var objs = [],
|
||||
len = arguments.length;
|
||||
|
||||
while (len--) {
|
||||
objs[len] = arguments[len];
|
||||
}
|
||||
|
||||
var result = Object.create(null);
|
||||
|
||||
function assignValue(val, key) {
|
||||
if (isObject(result[key] && isObject(val))) {
|
||||
result[key] = deepMerge(result[key], val);
|
||||
} else if (isObject(val)) {
|
||||
result[key] = deepMerge({}, val);
|
||||
} else {
|
||||
result[key] = val;
|
||||
}
|
||||
}
|
||||
|
||||
for (var i = 0; i < objs.length; i++) {
|
||||
var obj = objs[i];
|
||||
|
||||
for (var key in obj) {
|
||||
assignValue(obj[key], key);
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 标准格式化请求头
|
||||
* @param headers 请求头对象
|
||||
* @param normalizeName 标准名称
|
||||
*/
|
||||
|
||||
function normalizeHeaderName(header, normalizeName) {
|
||||
Object.keys(header).forEach(function (name) {
|
||||
if (name !== normalizeName && name.toUpperCase() === normalizeName.toUpperCase()) {
|
||||
header[normalizeName] = header[name];
|
||||
delete header[name];
|
||||
}
|
||||
});
|
||||
}
|
||||
/**
|
||||
* 格式化加工 Header请求头
|
||||
* @param headers
|
||||
*/
|
||||
|
||||
|
||||
function processHeaders(header) {
|
||||
normalizeHeaderName(header, 'Content-Type');
|
||||
normalizeHeaderName(header, 'appId');
|
||||
normalizeHeaderName(header, 'sessionId');
|
||||
return header;
|
||||
}
|
||||
/**
|
||||
* 请求头扁平化
|
||||
*
|
||||
* @param headers
|
||||
* @param method
|
||||
*/
|
||||
|
||||
function flattenHeaders(headers, method) {
|
||||
if (!headers) {
|
||||
return headers;
|
||||
}
|
||||
|
||||
headers = deepMerge(headers.common || {}, headers[method.toLocaleLowerCase()] || {}, headers);
|
||||
var methodsToDelete = ['delete', 'get', 'head', 'options', 'post', 'put', 'patch', 'common'];
|
||||
methodsToDelete.forEach(function (method) {
|
||||
delete headers[method];
|
||||
});
|
||||
return headers;
|
||||
}
|
||||
|
||||
/**
|
||||
* 组合URL
|
||||
* @param baseURL
|
||||
* @param relativeUrl
|
||||
*/
|
||||
function combineURL(baseURL, relativeURL) {
|
||||
return relativeURL ? baseURL.replace(/\/+$/, "") + "/" + relativeURL.replace(/^\/+/, "") : baseURL;
|
||||
}
|
||||
/**
|
||||
* 判断`URL`是否是绝对路径
|
||||
* @param url
|
||||
* @return {boolean}
|
||||
*/
|
||||
|
||||
function isAbsoluteURL(url) {
|
||||
// 如果URL以“<scheme>://”或“//”(协议相对URL)开头,则该URL被视为绝对值。
|
||||
// RFC 3986将方案名称定义为以字母开头的字符序列,
|
||||
// 后跟字母,数字,加号,句点或连字符的任意组合。
|
||||
return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(url);
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理请求头
|
||||
* @param config
|
||||
*/
|
||||
|
||||
function transformHeaders(config) {
|
||||
var header = config.header;
|
||||
if (header === void 0) header = {};
|
||||
var method = config.method;
|
||||
if (method === void 0) method = Method.GET;
|
||||
header = processHeaders(header);
|
||||
return flattenHeaders(header, method);
|
||||
}
|
||||
/**
|
||||
* 处理请求地址 URL
|
||||
* @param config
|
||||
*/
|
||||
|
||||
function transformUrl(config) {
|
||||
var url = config.url;
|
||||
if (url === void 0) url = '';
|
||||
var baseURL = config.baseURL;
|
||||
if (baseURL === void 0) baseURL = '';
|
||||
|
||||
if (baseURL && !isAbsoluteURL(url)) {
|
||||
url = combineURL(baseURL, url);
|
||||
}
|
||||
|
||||
return url;
|
||||
}
|
||||
/**
|
||||
* 抛出异常
|
||||
*
|
||||
* 如果当前`cancelToken`已经取消请求,则抛出异常
|
||||
* @param config
|
||||
*/
|
||||
|
||||
function throwIfCancellationRequested(config) {
|
||||
if (config.cancelToken) {
|
||||
config.cancelToken.throwIfRequested();
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 预处理配置文件
|
||||
* @param config 配置文件
|
||||
*/
|
||||
|
||||
function processConfig(config) {
|
||||
config.header = transformHeaders(config);
|
||||
config.url = transformUrl(config);
|
||||
}
|
||||
/**
|
||||
* 执行请求
|
||||
* @param config 配置文件
|
||||
*/
|
||||
|
||||
function dispatchRequest(config) {
|
||||
throwIfCancellationRequested(config);
|
||||
processConfig(config);
|
||||
return wxRequest(config);
|
||||
}
|
||||
|
||||
var InterceptorManager = function InterceptorManager() {
|
||||
this.handlers = [];
|
||||
};
|
||||
|
||||
InterceptorManager.prototype.use = function use(resolved, rejected) {
|
||||
this.handlers.push({
|
||||
resolved: resolved,
|
||||
rejected: rejected
|
||||
});
|
||||
return this.handlers.length - 1;
|
||||
};
|
||||
|
||||
InterceptorManager.prototype.eject = function eject(id) {
|
||||
if (this.handlers[id]) {
|
||||
this.handlers[id] = null;
|
||||
}
|
||||
};
|
||||
|
||||
InterceptorManager.prototype.forEach = function forEach(fn) {
|
||||
this.handlers.forEach(function (interceptor) {
|
||||
if (interceptor !== null) {
|
||||
fn(interceptor);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
function mergeConfig(defaultConfig, userConfig) {
|
||||
var config = Object.create(null); // 创建空对象,作为最终的合并结果
|
||||
// 1.常规属性,如果用户配置了就用用户配置的,如果用户没配置,则用默认配置的;
|
||||
|
||||
var defaultToUserConfig = ["baseURL", "transformRequest", "transformResponse", "paramsSerializer", "timeout", "withCredentials", "adapter", "responseType", "xsrfCookieName", "xsrfHeaderName", "onUploadProgress", "onDownloadProgress", "maxContentLength", "validateStatus", "maxRedirects", "httpAgent", "httpsAgent", "cancelToken", "socketPath"];
|
||||
defaultToUserConfig.forEach(function (prop) {
|
||||
userConfig = userConfig || {}; // 如果用户配置里有
|
||||
|
||||
if (typeof userConfig[prop] !== "undefined") {
|
||||
// 则用用户配置里的
|
||||
config[prop] = userConfig[prop]; // 如果用户配置里没有,默认配置里有
|
||||
} else if (typeof defaultConfig[prop] !== "undefined") {
|
||||
// 则用默认配置里的
|
||||
config[prop] = defaultConfig[prop];
|
||||
}
|
||||
}); // 2.只接受用户配置,不管默认配置对象里面有没有,我们只取用户配置的;
|
||||
|
||||
var valueFromUserConfig = ["url", "method", "params", "data"];
|
||||
valueFromUserConfig.forEach(function (prop) {
|
||||
userConfig = userConfig || {};
|
||||
|
||||
if (typeof userConfig[prop] !== 'undefined') {
|
||||
config[prop] = userConfig[prop];
|
||||
}
|
||||
}); // 3.复杂对象深度合并
|
||||
|
||||
var mergeDeepProperties = ["header", "auth", "proxy"];
|
||||
mergeDeepProperties.forEach(function (prop) {
|
||||
userConfig = userConfig || {};
|
||||
|
||||
if (isObject(userConfig[prop])) {
|
||||
config[prop] = deepMerge(defaultConfig[prop], userConfig[prop]);
|
||||
} else if (typeof userConfig[prop] !== 'undefined') {
|
||||
config[prop] = userConfig[prop];
|
||||
} else if (isObject(defaultConfig[prop])) {
|
||||
config[prop] = deepMerge(defaultConfig[prop]);
|
||||
} else if (typeof defaultConfig[prop] !== 'undefined') {
|
||||
config[prop] = defaultConfig[prop];
|
||||
}
|
||||
});
|
||||
return config;
|
||||
}
|
||||
|
||||
var Axios = function Axios(defaultConfig) {
|
||||
this.defaults = defaultConfig;
|
||||
this.interceptors = {
|
||||
request: new InterceptorManager(),
|
||||
response: new InterceptorManager()
|
||||
};
|
||||
};
|
||||
|
||||
Axios.prototype.request = function request(config) {
|
||||
// 合并参数
|
||||
config = mergeConfig(this.defaults, config); // 拦截器
|
||||
|
||||
var promise = Promise.resolve(config);
|
||||
var chain = [{
|
||||
resolved: dispatchRequest,
|
||||
rejected: undefined
|
||||
}]; // let chain:AxiosInterceptor<any>[] = [
|
||||
// {
|
||||
// resolved: dispatchRequest,
|
||||
// rejected: undefined
|
||||
// }
|
||||
// ];
|
||||
|
||||
this.interceptors.request.forEach(function (interceptor) {
|
||||
chain.unshift(interceptor);
|
||||
});
|
||||
this.interceptors.response.forEach(function (interceptor) {
|
||||
chain.push(interceptor);
|
||||
});
|
||||
|
||||
while (chain.length > 0) {
|
||||
var ref = chain.shift();
|
||||
var resolved = ref.resolved;
|
||||
var rejected = ref.rejected;
|
||||
promise = promise.then(resolved, rejected);
|
||||
}
|
||||
|
||||
return promise; // return dispatchRequest(config);
|
||||
};
|
||||
|
||||
Axios.prototype.get = function get(url, config) {
|
||||
return this._requestMethodWithoutData(Method.GET, url, config);
|
||||
};
|
||||
|
||||
Axios.prototype.post = function post(url, data, config) {
|
||||
return this._requestMethodWithData(Method.POST, url, data, config);
|
||||
};
|
||||
|
||||
Axios.prototype.put = function put(url, data, config) {
|
||||
return this._requestMethodWithData(Method.PUT, url, data, config);
|
||||
};
|
||||
|
||||
Axios.prototype["delete"] = function delete$1(url, config) {
|
||||
return this._requestMethodWithoutData(Method.DELETE, url, config);
|
||||
};
|
||||
|
||||
Axios.prototype.connect = function connect(url, config) {
|
||||
return this._requestMethodWithoutData(Method.CONNECT, url, config);
|
||||
};
|
||||
|
||||
Axios.prototype.head = function head(url, config) {
|
||||
return this._requestMethodWithoutData(Method.HEAD, url, config);
|
||||
};
|
||||
|
||||
Axios.prototype.options = function options(url, config) {
|
||||
return this._requestMethodWithoutData(Method.OPTIONS, url, config);
|
||||
};
|
||||
|
||||
Axios.prototype.trace = function trace(url, config) {
|
||||
return this._requestMethodWithoutData(Method.TRACE, url, config);
|
||||
};
|
||||
|
||||
Axios.prototype._requestMethodWithData = function _requestMethodWithData(method, url, data, config) {
|
||||
return this.request(Object.assign(config || {}, {
|
||||
method: method,
|
||||
url: url,
|
||||
data: data
|
||||
}));
|
||||
};
|
||||
|
||||
Axios.prototype._requestMethodWithoutData = function _requestMethodWithoutData(method, url, config) {
|
||||
return this.request(Object.assign(config || {}, {
|
||||
method: method,
|
||||
url: url
|
||||
}));
|
||||
};
|
||||
/**
|
||||
* 根据传入的请求配置对象返回一个请求的`URL`
|
||||
* @param config 请求配置
|
||||
* @returns {string} 请求`URL`
|
||||
*/
|
||||
|
||||
|
||||
Axios.prototype.getUri = function getUri(config) {
|
||||
config = mergeConfig(this.defaults, config);
|
||||
return transformUrl(config);
|
||||
};
|
||||
|
||||
/**
|
||||
* 默认配置
|
||||
*/
|
||||
|
||||
var defaults = {
|
||||
baseURL: '',
|
||||
header: {},
|
||||
method: Method.GET,
|
||||
responseType: HttpResponseType.TEXT,
|
||||
validateStatus: function validateStatus(status) {
|
||||
return status >= 200 && status < 300;
|
||||
}
|
||||
};
|
||||
|
||||
var Cancel = function Cancel(message) {
|
||||
if (message === void 0) message = '';
|
||||
this.message = message;
|
||||
};
|
||||
|
||||
var CancelToken = function CancelToken(executor) {
|
||||
var this$1 = this;
|
||||
var resolvePromise;
|
||||
this.promise = new Promise(function (resolve) {
|
||||
resolvePromise = resolve;
|
||||
}); // executor 括号内为 一个回调函数作为参数,该函数接收一个string类型的取消原因作为参数
|
||||
// 调用该回调函数时,会修改 Promise状态为 resolve
|
||||
|
||||
executor(function (message) {
|
||||
if (this$1.reason) {
|
||||
return;
|
||||
}
|
||||
|
||||
this$1.reason = new Cancel(message);
|
||||
resolvePromise(this$1.reason); // 修改 Promise状态为 resolve
|
||||
});
|
||||
};
|
||||
|
||||
CancelToken.source = function source() {
|
||||
var cancel;
|
||||
var token = new CancelToken(function (fn) {
|
||||
cancel = fn;
|
||||
});
|
||||
return {
|
||||
cancel: cancel,
|
||||
token: token
|
||||
};
|
||||
};
|
||||
|
||||
CancelToken.prototype.throwIfRequested = function throwIfRequested() {
|
||||
if (this.reason) {
|
||||
throw this.reason;
|
||||
}
|
||||
};
|
||||
|
||||
function isCancel(val) {
|
||||
return val instanceof Cancel;
|
||||
}
|
||||
|
||||
function getAxios(config) {
|
||||
var context = new Axios(config); // Axios 实例,用于给 axios继承自身属性
|
||||
|
||||
var axios = Axios.prototype.request.bind(context); // 复制原型方法,并绑定函数`this` Copy axios.prototype to instance
|
||||
|
||||
extend(axios, Axios.prototype, context); // 复制实例属性 Copy context to instance
|
||||
|
||||
extend(axios, context);
|
||||
return axios;
|
||||
}
|
||||
|
||||
var axios = getAxios(defaults);
|
||||
|
||||
axios.create = function create(config) {
|
||||
return getAxios(mergeConfig(defaults, config));
|
||||
};
|
||||
|
||||
axios.CancelToken = CancelToken;
|
||||
axios.Cancel = Cancel;
|
||||
axios.isCancel = isCancel;
|
||||
|
||||
axios.all = function (promises) {
|
||||
return Promise.all(promises);
|
||||
};
|
||||
|
||||
axios.spread = function (callback) {
|
||||
return function wrap(arr) {
|
||||
return callback.apply(null, arr);
|
||||
};
|
||||
};
|
||||
|
||||
return axios;
|
||||
|
||||
})));
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).axios=e()}(this,function(){"use strict";var h,t,r,e;(t=h=h||{}).GET="GET",t.POST="POST",t.PUT="PUT",t.HEAD="HEAD",t.DELETE="DELETE",t.TRACE="TRACE",t.CONNECT="CONNECT",t.OPTIONS="OPTIONS",(e=r=r||{}).TEXT="text",e.ARRAYBUFFER="arraybuffer";var a=function(a){function u(t,e,o,r,n){a.call(this,t),this.config=o,this.statusCode=e,this.request=r,this.response=n,Object.setPrototypeOf(this,u.prototype)}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u}(Error);function p(t,e,o,r,n){return new a(t,e,o,r,n)}function u(t){return(u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var s=Object.prototype.toString;function i(t){return null!==t&&"object"===u(t)}function n(e,o){if(null!=e)if("object"!==u(e)&&(e=[e]),n=e,"[object Array]"===s.call(n))for(var t=0,r=e.length;t<r;t++)o.call(null,e[t],t,e);else Object.getOwnPropertyNames(e).forEach(function(t){Object.prototype.hasOwnProperty.call(e,t)&&"constructor"!==t&&o.call(null,e[t],t,e)});var n}function c(o,t,r){return n(t,function(t,e){o[e]=r&&"function"==typeof t?t.bind(r):t}),o}function f(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];var o,r,n=Object.create(null);for(var a=0;a<t.length;a++){var u=t[a];for(var s in u)o=u[s],i(n[r=s]&&i(o))?n[r]=f(n[r],o):i(o)?n[r]=f({},o):n[r]=o}return n}function d(e,o){Object.keys(e).forEach(function(t){t!==o&&t.toUpperCase()===o.toUpperCase()&&(e[o]=e[t],delete e[t])})}function l(t){var e=t.header;void 0===e&&(e={});var o,r,n,a=t.method;return void 0===a&&(a=h.GET),d(o=e,"Content-Type"),d(o,"appId"),d(o,"sessionId"),n=a,(r=e=o)&&(r=f(r.common||{},r[n.toLocaleLowerCase()]||{},r),["delete","get","head","options","post","put","patch","common"].forEach(function(t){delete r[t]})),r}function y(t){var e=t.url;void 0===e&&(e="");var o,r,n=t.baseURL;return void 0===n&&(n=""),n&&!/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)&&(o=n,e=(r=e)?o.replace(/\/+$/,"")+"/"+r.replace(/^\/+/,""):o),e}function v(t){var e,o;return(e=t).cancelToken&&e.cancelToken.throwIfRequested(),(o=t).header=l(o),o.url=y(o),function(a){var t=a.url,e=a.method;void 0===e&&(e=h.GET);var u=a.data;void 0===u&&(u={});var s=a.header;void 0===s&&(s={});var i=a.responseType;void 0===i&&(i=r.TEXT);var c=a.cancelToken,f=a.validateStatus;return new Promise(function(o,r){var n=uni.request({url:t,header:s,method:e,data:u,responseType:i,success:function(t){var e={data:t.data,statusCode:t.statusCode,header:t.header};!f||f(t.statusCode)?o(e):r(p("Request failed with status code "+e.statusCode,e.statusCode,a,n,e))},fail:function(){r(p("Net Error",1001,a,n))}});c&&c.promise.then(function(t){n.abort(),r(t)})})}(t)}function o(){this.handlers=[]}function E(e,o){var r=Object.create(null);["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","maxContentLength","validateStatus","maxRedirects","httpAgent","httpsAgent","cancelToken","socketPath"].forEach(function(t){void 0!==(o=o||{})[t]?r[t]=o[t]:void 0!==e[t]&&(r[t]=e[t])});["url","method","params","data"].forEach(function(t){void 0!==(o=o||{})[t]&&(r[t]=o[t])});return["header","auth","proxy"].forEach(function(t){i((o=o||{})[t])?r[t]=f(e[t],o[t]):void 0!==o[t]?r[t]=o[t]:i(e[t])?r[t]=f(e[t]):void 0!==e[t]&&(r[t]=e[t])}),r}o.prototype.use=function(t,e){return this.handlers.push({resolved:t,rejected:e}),this.handlers.length-1},o.prototype.eject=function(t){this.handlers[t]&&(this.handlers[t]=null)},o.prototype.forEach=function(e){this.handlers.forEach(function(t){null!==t&&e(t)})};function T(t){this.defaults=t,this.interceptors={request:new o,response:new o}}T.prototype.request=function(t){t=E(this.defaults,t);var e=Promise.resolve(t),o=[{resolved:v,rejected:void 0}];for(this.interceptors.request.forEach(function(t){o.unshift(t)}),this.interceptors.response.forEach(function(t){o.push(t)});0<o.length;){var r=o.shift(),n=r.resolved,a=r.rejected;e=e.then(n,a)}return e},T.prototype.get=function(t,e){return this._requestMethodWithoutData(h.GET,t,e)},T.prototype.post=function(t,e,o){return this._requestMethodWithData(h.POST,t,e,o)},T.prototype.put=function(t,e,o){return this._requestMethodWithData(h.PUT,t,e,o)},T.prototype.delete=function(t,e){return this._requestMethodWithoutData(h.DELETE,t,e)},T.prototype.connect=function(t,e){return this._requestMethodWithoutData(h.CONNECT,t,e)},T.prototype.head=function(t,e){return this._requestMethodWithoutData(h.HEAD,t,e)},T.prototype.options=function(t,e){return this._requestMethodWithoutData(h.OPTIONS,t,e)},T.prototype.trace=function(t,e){return this._requestMethodWithoutData(h.TRACE,t,e)},T.prototype._requestMethodWithData=function(t,e,o,r)Line truncated
|
||||
Reference in new issue
Block a user