common-mpvue
Version:
基于mpvue小程序的通用能力封装
105 lines (104 loc) • 2.73 kB
JavaScript
import { httpRequest } from '../request';
import nav from '../nav';
var noPromiseMethods = [
'stopRecord',
'pauseVoice',
'stopVoice',
'pauseBackgroundAudio',
'stopBackgroundAudio',
'showNavigationBarLoading',
'hideNavigationBarLoading',
'createAnimation',
'createContext',
'hideKeyboard',
'stopPullDownRefresh'
];
Promise.prototype.finally = function (finaliser) {
return this.then(function (result) {
finaliser();
return result;
}, function (reason) {
finaliser();
if (reason instanceof Error) {
throw reason;
}
else if (typeof reason === 'string') {
throw new Error(reason);
}
else if (reason && reason.errMsg) {
throw new Error(reason.errMsg);
}
throw reason;
});
};
var wxp = {};
var _loop_1 = function (key) {
if (Object.prototype.hasOwnProperty.call(wx, key)) {
var noPromise = noPromiseMethods.includes(key) ||
key.startsWith('on') ||
/\w+Sync$/.test(key) ||
typeof wx[key] !== 'function';
if (!noPromise) {
wxp[key] = function (obj) {
var args = [];
for (var _i = 1; _i < arguments.length; _i++) {
args[_i - 1] = arguments[_i];
}
var params = obj || {};
return new Promise(function (resolve, reject) {
params.success = resolve;
params.fail = reject;
wx[key].apply(wx, [params].concat(args));
});
};
}
else if (typeof wx[key] === 'function') {
wxp[key] = function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
return wx[key].apply(wx, args);
};
}
else {
wxp[key] = wx[key];
}
}
};
for (var key in wx) {
_loop_1(key);
}
Object.defineProperties(wxp, {
httpRequest: {
configurable: false,
enumerable: true,
get: function () {
return httpRequest;
}
},
nav: {
configurable: false,
enumerable: true,
get: function () {
return nav;
}
}
});
Object.defineProperties(wx, {
httpRequest: {
configurable: false,
enumerable: true,
get: function () {
return httpRequest;
}
},
nav: {
configurable: false,
enumerable: true,
get: function () {
return nav;
}
}
});
export default wxp;