1 | (function webpackUniversalModuleDefinition(root, factory) {
|
2 | if(typeof exports === 'object' && typeof module === 'object')
|
3 | module.exports = factory();
|
4 | else if(typeof define === 'function' && define.amd)
|
5 | define([], factory);
|
6 | else {
|
7 | var a = factory();
|
8 | for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];
|
9 | }
|
10 | })(window, function() {
|
11 | return (function(modules) {
|
12 |
|
13 | var installedModules = {};
|
14 |
|
15 |
|
16 | function __webpack_require__(moduleId) {
|
17 |
|
18 |
|
19 | if(installedModules[moduleId]) {
|
20 | return installedModules[moduleId].exports;
|
21 | }
|
22 |
|
23 | var module = installedModules[moduleId] = {
|
24 | i: moduleId,
|
25 | l: false,
|
26 | exports: {}
|
27 | };
|
28 |
|
29 |
|
30 | modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
31 |
|
32 |
|
33 | module.l = true;
|
34 |
|
35 |
|
36 | return module.exports;
|
37 | }
|
38 |
|
39 |
|
40 |
|
41 | __webpack_require__.m = modules;
|
42 |
|
43 |
|
44 | __webpack_require__.c = installedModules;
|
45 |
|
46 |
|
47 | __webpack_require__.d = function(exports, name, getter) {
|
48 | if(!__webpack_require__.o(exports, name)) {
|
49 | Object.defineProperty(exports, name, {
|
50 | configurable: false,
|
51 | enumerable: true,
|
52 | get: getter
|
53 | /******/ });
|
54 | /******/ }
|
55 | /******/ };
|
56 | /******/
|
57 | /******/ // define __esModule on exports
|
58 | /******/ __webpack_require__.r = function(exports) {
|
59 | Object.defineProperty(exports, '__esModule', { value: true });
|
60 | };
|
61 |
|
62 |
|
63 | __webpack_require__.n = function(module) {
|
64 | var getter = module && module.__esModule ?
|
65 | function getDefault() { return module['default']; } :
|
66 | function getModuleExports() { return module; };
|
67 | __webpack_require__.d(getter, 'a', getter);
|
68 | return getter;
|
69 | };
|
70 |
|
71 |
|
72 | __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
|
73 |
|
74 |
|
75 | __webpack_require__.p = "";
|
76 |
|
77 |
|
78 |
|
79 | return __webpack_require__(__webpack_require__.s = 0);
|
80 | })
|
81 |
|
82 | ([
|
83 |
|
84 | (function(module, __webpack_exports__, __webpack_require__) {
|
85 |
|
86 | "use strict";
|
87 | __webpack_require__.r(__webpack_exports__);
|
88 |
|
89 |
|
90 | var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
91 |
|
92 | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
93 |
|
94 |
|
95 |
|
96 |
|
97 |
|
98 |
|
99 |
|
100 |
|
101 |
|
102 |
|
103 | var core_native = {};
|
104 | var RequestMQ = {
|
105 | map: {},
|
106 | mq: [],
|
107 | running: [],
|
108 | MAX_REQUEST: 5,
|
109 | push: function push(param) {
|
110 | param.t = +new Date();
|
111 | while (this.mq.indexOf(param.t) > -1 || this.running.indexOf(param.t) > -1) {
|
112 | param.t += Math.random() * 10 >> 0;
|
113 | }
|
114 | this.mq.push(param.t);
|
115 | this.map[param.t] = param;
|
116 | },
|
117 | next: function next() {
|
118 | var me = this;
|
119 |
|
120 | if (this.mq.length === 0) return;
|
121 |
|
122 | if (this.running.length < this.MAX_REQUEST - 1) {
|
123 | var newone = this.mq.shift();
|
124 | var obj = this.map[newone];
|
125 | var oldComplete = obj.complete;
|
126 | obj.complete = function () {
|
127 | for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
|
128 | args[_key] = arguments[_key];
|
129 | }
|
130 |
|
131 | me.running.splice(me.running.indexOf(obj.t), 1);
|
132 | delete me.map[obj.t];
|
133 | oldComplete && oldComplete.apply(obj, args);
|
134 | me.next();
|
135 | };
|
136 | this.running.push(obj.t);
|
137 | return wx.request(obj);
|
138 | }
|
139 | },
|
140 | request: function request(obj) {
|
141 |
|
142 | obj = obj || {};
|
143 | obj = typeof obj === 'string' ? { url: obj } : obj;
|
144 |
|
145 | this.push(obj);
|
146 |
|
147 | return this.next();
|
148 | }
|
149 | };
|
150 |
|
151 | var CoreClass = function () {
|
152 | function CoreClass() {
|
153 | _classCallCheck(this, CoreClass);
|
154 |
|
155 | this.$addons = {};
|
156 |
|
157 | this.$interceptors = {};
|
158 |
|
159 | this.$pages = {};
|
160 | }
|
161 |
|
162 | _createClass(CoreClass, [{
|
163 | key: '$init',
|
164 | value: function $init(wepy) {
|
165 | var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
166 |
|
167 | this.$initAPI(wepy, config.noPromiseAPI);
|
168 | this.$wxapp = getApp();
|
169 | }
|
170 | }, {
|
171 | key: 'use',
|
172 | value: function use(addon) {
|
173 | for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
|
174 | args[_key2 - 1] = arguments[_key2];
|
175 | }
|
176 |
|
177 | if (typeof addon === 'string' && this[addon]) {
|
178 | this.$addons[addon] = 1;
|
179 | this[addon](args);
|
180 | } else {
|
181 | this.$addons[addon.name] = new addon(args);
|
182 | }
|
183 | }
|
184 | }, {
|
185 | key: 'intercept',
|
186 | value: function intercept(api, provider) {
|
187 | this.$interceptors[api] = provider;
|
188 | }
|
189 | }, {
|
190 | key: 'promisify',
|
191 | value: function promisify() {
|
192 | console.log('promise已经启用');
|
193 | }
|
194 | }, {
|
195 | key: 'requestfix',
|
196 | value: function requestfix() {
|
197 | console.log('requestfix启用');
|
198 | }
|
199 | }, {
|
200 | key: '$initAPI',
|
201 | value: function $initAPI(wepy, noPromiseAPI) {
|
202 | var self = this;
|
203 | var noPromiseMethods = {
|
204 |
|
205 | stopRecord: true,
|
206 | getRecorderManager: true,
|
207 | pauseVoice: true,
|
208 | stopVoice: true,
|
209 | pauseBackgroundAudio: true,
|
210 | stopBackgroundAudio: true,
|
211 | getBackgroundAudioManager: true,
|
212 | createAudioContext: true,
|
213 | createInnerAudioContext: true,
|
214 | createVideoContext: true,
|
215 | createCameraContext: true,
|
216 |
|
217 |
|
218 | createMapContext: true,
|
219 |
|
220 |
|
221 | canIUse: true,
|
222 | startAccelerometer: true,
|
223 | stopAccelerometer: true,
|
224 | startCompass: true,
|
225 | stopCompass: true,
|
226 | onBLECharacteristicValueChange: true,
|
227 | onBLEConnectionStateChange: true,
|
228 |
|
229 |
|
230 | hideToast: true,
|
231 | hideLoading: true,
|
232 | showNavigationBarLoading: true,
|
233 | hideNavigationBarLoading: true,
|
234 | navigateBack: true,
|
235 | createAnimation: true,
|
236 | pageScrollTo: true,
|
237 | createSelectorQuery: true,
|
238 | createCanvasContext: true,
|
239 | createContext: true,
|
240 | drawCanvas: true,
|
241 | hideKeyboard: true,
|
242 | stopPullDownRefresh: true,
|
243 |
|
244 |
|
245 | arrayBufferToBase64: true,
|
246 | base64ToArrayBuffer: true
|
247 | };
|
248 | if (noPromiseAPI) {
|
249 | if (Array.isArray(noPromiseAPI)) {
|
250 | noPromiseAPI.forEach(function (v) {
|
251 | return noPromiseMethods[v] = true;
|
252 | });
|
253 | } else {
|
254 | for (var k in noPromiseAPI) {
|
255 | noPromiseMethods[k] = noPromiseAPI[k];
|
256 | }
|
257 | }
|
258 | }
|
259 | Object.keys(wx).forEach(function (key) {
|
260 | if (!noPromiseMethods[key] && key.substr(0, 2) !== 'on' && !/\w+Sync$/.test(key)) {
|
261 | Object.defineProperty(core_native, key, {
|
262 | get: function get() {
|
263 | return function (obj) {
|
264 | obj = obj || {};
|
265 | if (self.$interceptors[key] && self.$interceptors[key].config) {
|
266 | var rst = self.$interceptors[key].config.call(self, obj);
|
267 | if (rst === false) {
|
268 | if (self.$addons.promisify) {
|
269 | return Promise.reject('aborted by interceptor');
|
270 | } else {
|
271 | obj.fail && obj.fail('aborted by interceptor');
|
272 | return;
|
273 | }
|
274 | }
|
275 | obj = rst;
|
276 | }
|
277 | if (key === 'request') {
|
278 | obj = typeof obj === 'string' ? { url: obj } : obj;
|
279 | }
|
280 | if (typeof obj === 'string') {
|
281 | return wx[key](obj);
|
282 | }
|
283 | if (self.$addons.promisify) {
|
284 | var task = void 0;
|
285 | var p = new Promise(function (resolve, reject) {
|
286 | var bak = {};
|
287 | ['fail', 'success', 'complete'].forEach(function (k) {
|
288 | bak[k] = obj[k];
|
289 | obj[k] = function (res) {
|
290 | if (self.$interceptors[key] && self.$interceptors[key][k]) {
|
291 | res = self.$interceptors[key][k].call(self, res);
|
292 | }
|
293 | if (k === 'success') resolve(res);else if (k === 'fail') reject(res);
|
294 | };
|
295 | });
|
296 | if (self.$addons.requestfix && key === 'request') {
|
297 | RequestMQ.request(obj);
|
298 | } else {
|
299 | task = wx[key](obj);
|
300 | }
|
301 | });
|
302 | if (key === 'uploadFile' || key === 'downloadFile') {
|
303 | p.progress = function (cb) {
|
304 | task.onProgressUpdate(cb);
|
305 | return p;
|
306 | };
|
307 | p.abort = function (cb) {
|
308 | cb && cb();
|
309 | task.abort();
|
310 | return p;
|
311 | };
|
312 | }
|
313 | return p;
|
314 | } else {
|
315 | var bak = {};
|
316 | ['fail', 'success', 'complete'].forEach(function (k) {
|
317 | bak[k] = obj[k];
|
318 | obj[k] = function (res) {
|
319 | if (self.$interceptors[key] && self.$interceptors[key][k]) {
|
320 | res = self.$interceptors[key][k].call(self, res);
|
321 | }
|
322 | bak[k] && bak[k].call(self, res);
|
323 | };
|
324 | });
|
325 | if (self.$addons.requestfix && key === 'request') {
|
326 | RequestMQ.request(obj);
|
327 | } else {
|
328 | return wx[key](obj);
|
329 | }
|
330 | }
|
331 | };
|
332 | }
|
333 | });
|
334 | wepy[key] = core_native[key];
|
335 | } else {
|
336 | Object.defineProperty(core_native, key, {
|
337 | get: function get() {
|
338 | return function () {
|
339 | for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
340 | args[_key3] = arguments[_key3];
|
341 | }
|
342 |
|
343 | return wx[key].apply(wx, args);
|
344 | };
|
345 | }
|
346 | });
|
347 | wepy[key] = core_native[key];
|
348 | }
|
349 | });
|
350 | }
|
351 | }]);
|
352 |
|
353 | return CoreClass;
|
354 | }();
|
355 |
|
356 | var core = (CoreClass);
|
357 |
|
358 |
|
359 | var wxp_wxp = new core();
|
360 | wxp_wxp.$init(wxp_wxp);
|
361 | wxp_wxp.use('promisify');
|
362 | wxp_wxp.use('requestfix');
|
363 | var src_wxp = __webpack_exports__["default"] = (wxp_wxp);
|
364 |
|
365 | })
|
366 | ]);
|
367 | }); |
\ | No newline at end of file |