@tarojs/api 4.0.0-canary.8 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,358 +1,28 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var _typeof = require('@babel/runtime/helpers/typeof');
6
- var runtime = require('@tarojs/runtime');
7
- var shared = require('@tarojs/shared');
8
- var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
9
- var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
10
- var _createClass = require('@babel/runtime/helpers/createClass');
11
- var _defineProperty = require('@babel/runtime/helpers/defineProperty');
12
-
13
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
14
-
15
- var _typeof__default = /*#__PURE__*/_interopDefaultLegacy(_typeof);
16
- var _objectSpread__default = /*#__PURE__*/_interopDefaultLegacy(_objectSpread);
17
- var _classCallCheck__default = /*#__PURE__*/_interopDefaultLegacy(_classCallCheck);
18
- var _createClass__default = /*#__PURE__*/_interopDefaultLegacy(_createClass);
19
- var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
20
-
21
- function isFunction(x) {
22
- return typeof x === 'function';
23
- }
24
- function isUndefined(x) {
25
- return typeof x === 'undefined';
26
- }
27
- function isObject(x) {
28
- return x && _typeof__default["default"](x) === 'object';
29
- }
30
-
31
- var isBadObj = function isBadObj(x) {
32
- return !isObject(x);
33
- };
34
- function throwTypeError(s) {
35
- throw new TypeError(s);
36
- }
37
- if (!isFunction(Object.assign)) {
38
- // Must be writable: true, enumerable: false, configurable: true
39
- Object.assign = function (target) {
40
- // .length of function is 2
41
- if (target == null) {
42
- // TypeError if undefined or null
43
- throwTypeError('Cannot convert undefined or null to object');
44
- }
45
- var to = Object(target);
46
- for (var index = 1; index < arguments.length; index++) {
47
- var nextSource = arguments[index];
48
- if (nextSource != null) {
49
- // Skip over if undefined or null
50
- for (var nextKey in nextSource) {
51
- // Avoid bugs when hasOwnProperty is shadowed
52
- if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {
53
- to[nextKey] = nextSource[nextKey];
54
- }
55
- }
56
- }
57
- }
58
- return to;
59
- };
60
- }
61
- if (!isFunction(Object.defineProperties)) {
62
- Object.defineProperties = function (obj, properties) {
63
- function convertToDescriptor(desc) {
64
- function hasProperty(obj, prop) {
65
- return Object.prototype.hasOwnProperty.call(obj, prop);
66
- }
67
- if (isBadObj(desc)) {
68
- throwTypeError('bad desc');
69
- }
70
- var d = {};
71
- if (hasProperty(desc, 'enumerable')) d.enumerable = !!desc.enumerable;
72
- if (hasProperty(desc, 'configurable')) {
73
- d.configurable = !!desc.configurable;
74
- }
75
- if (hasProperty(desc, 'value')) d.value = desc.value;
76
- if (hasProperty(desc, 'writable')) d.writable = !!desc.writable;
77
- if (hasProperty(desc, 'get')) {
78
- var g = desc.get;
79
- if (!isFunction(g) && !isUndefined(g)) {
80
- throwTypeError('bad get');
81
- }
82
- d.get = g;
83
- }
84
- if (hasProperty(desc, 'set')) {
85
- var s = desc.set;
86
- if (!isFunction(s) && !isUndefined(s)) {
87
- throwTypeError('bad set');
88
- }
89
- d.set = s;
90
- }
91
- if (('get' in d || 'set' in d) && ('value' in d || 'writable' in d)) {
92
- throwTypeError('identity-confused descriptor');
93
- }
94
- return d;
95
- }
96
- if (isBadObj(obj)) throwTypeError('bad obj');
97
- properties = Object(properties);
98
- var keys = Object.keys(properties);
99
- var descs = [];
100
- for (var i = 0; i < keys.length; i++) {
101
- descs.push([keys[i], convertToDescriptor(properties[keys[i]])]);
102
- }
103
- for (var _i = 0; _i < descs.length; _i++) {
104
- Object.defineProperty(obj, descs[_i][0], descs[_i][1]);
105
- }
106
- return obj;
107
- };
108
- }
109
-
110
- var ENV_TYPE = {
111
- WEAPP: 'WEAPP',
112
- SWAN: 'SWAN',
113
- ALIPAY: 'ALIPAY',
114
- TT: 'TT',
115
- QQ: 'QQ',
116
- JD: 'JD',
117
- WEB: 'WEB',
118
- RN: 'RN',
119
- HARMONY: 'HARMONY',
120
- QUICKAPP: 'QUICKAPP'
121
- };
122
- var isWeb = shared.isWebPlatform();
123
- function getEnv() {
124
- if (process.env.TARO_ENV === 'weapp') {
125
- return ENV_TYPE.WEAPP;
126
- } else if (process.env.TARO_ENV === 'alipay') {
127
- return ENV_TYPE.ALIPAY;
128
- } else if (process.env.TARO_ENV === 'swan') {
129
- return ENV_TYPE.SWAN;
130
- } else if (process.env.TARO_ENV === 'tt') {
131
- return ENV_TYPE.TT;
132
- } else if (process.env.TARO_ENV === 'jd') {
133
- return ENV_TYPE.JD;
134
- } else if (process.env.TARO_ENV === 'qq') {
135
- return ENV_TYPE.QQ;
136
- } else if (isWeb) {
137
- return ENV_TYPE.WEB;
138
- } else if (process.env.TARO_ENV === 'rn') {
139
- return ENV_TYPE.RN;
140
- } else if (process.env.TARO_ENV === 'harmony') {
141
- return ENV_TYPE.HARMONY;
142
- } else if (process.env.TARO_ENV === 'quickapp') {
143
- return ENV_TYPE.QUICKAPP;
144
- } else {
145
- return process.env.TARO_ENV || 'Unknown';
146
- }
147
- }
148
-
149
- var Chain = /*#__PURE__*/function () {
150
- function Chain(requestParams, interceptors, index) {
151
- _classCallCheck__default["default"](this, Chain);
152
- this.index = index || 0;
153
- this.requestParams = requestParams;
154
- this.interceptors = interceptors || [];
155
- }
156
- _createClass__default["default"](Chain, [{
157
- key: "proceed",
158
- value: function proceed(requestParams) {
159
- this.requestParams = requestParams;
160
- if (this.index >= this.interceptors.length) {
161
- throw new Error('chain 参数错误, 请勿直接修改 request.chain');
162
- }
163
- var nextInterceptor = this._getNextInterceptor();
164
- var nextChain = this._getNextChain();
165
- var p = nextInterceptor(nextChain);
166
- var res = p.catch(function (err) {
167
- return Promise.reject(err);
168
- });
169
- Object.keys(p).forEach(function (k) {
170
- return isFunction(p[k]) && (res[k] = p[k]);
171
- });
172
- return res;
173
- }
174
- }, {
175
- key: "_getNextInterceptor",
176
- value: function _getNextInterceptor() {
177
- return this.interceptors[this.index];
178
- }
179
- }, {
180
- key: "_getNextChain",
181
- value: function _getNextChain() {
182
- return new Chain(this.requestParams, this.interceptors, this.index + 1);
183
- }
184
- }]);
185
- return Chain;
186
- }();
187
-
188
- var Link = /*#__PURE__*/function () {
189
- function Link(interceptor) {
190
- _classCallCheck__default["default"](this, Link);
191
- this.taroInterceptor = interceptor;
192
- this.chain = new Chain();
193
- }
194
- _createClass__default["default"](Link, [{
195
- key: "request",
196
- value: function request(requestParams) {
197
- var chain = this.chain;
198
- var taroInterceptor = this.taroInterceptor;
199
- chain.interceptors = chain.interceptors.filter(function (interceptor) {
200
- return interceptor !== taroInterceptor;
201
- }).concat(taroInterceptor);
202
- return chain.proceed(_objectSpread__default["default"]({}, requestParams));
203
- }
204
- }, {
205
- key: "addInterceptor",
206
- value: function addInterceptor(interceptor) {
207
- this.chain.interceptors.push(interceptor);
208
- }
209
- }, {
210
- key: "cleanInterceptors",
211
- value: function cleanInterceptors() {
212
- this.chain = new Chain();
213
- }
214
- }]);
215
- return Link;
216
- }();
217
- function interceptorify(promiseifyApi) {
218
- return new Link(function (chain) {
219
- return promiseifyApi(chain.requestParams);
220
- });
221
- }
222
-
223
- function timeoutInterceptor(chain) {
224
- var requestParams = chain.requestParams;
225
- var p;
226
- var res = new Promise(function (resolve, reject) {
227
- var timeout = setTimeout(function () {
228
- timeout = null;
229
- reject(new Error('网络链接超时,请稍后再试!'));
230
- }, requestParams && requestParams.timeout || 60000);
231
- p = chain.proceed(requestParams);
232
- p.then(function (res) {
233
- if (!timeout) return;
234
- clearTimeout(timeout);
235
- resolve(res);
236
- }).catch(function (err) {
237
- timeout && clearTimeout(timeout);
238
- reject(err);
239
- });
240
- });
241
- if (!isUndefined(p) && isFunction(p.abort)) res.abort = p.abort;
242
- return res;
243
- }
244
- function logInterceptor(chain) {
245
- var requestParams = chain.requestParams;
246
- var method = requestParams.method,
247
- data = requestParams.data,
248
- url = requestParams.url;
249
-
250
- // eslint-disable-next-line no-console
251
- console.log("http ".concat(method || 'GET', " --> ").concat(url, " data: "), data);
252
- var p = chain.proceed(requestParams);
253
- var res = p.then(function (res) {
254
- // eslint-disable-next-line no-console
255
- console.log("http <-- ".concat(url, " result:"), res);
256
- return res;
257
- });
258
- if (isFunction(p.abort)) res.abort = p.abort;
259
- return res;
260
- }
261
-
262
- var interceptors = /*#__PURE__*/Object.freeze({
263
- __proto__: null,
264
- timeoutInterceptor: timeoutInterceptor,
265
- logInterceptor: logInterceptor
266
- });
267
-
268
- function Behavior(options) {
269
- return options;
270
- }
271
- function getPreload(current) {
272
- return function (key, val) {
273
- current.preloadData = isObject(key) ? key : _defineProperty__default["default"]({}, key, val);
274
- };
275
- }
276
- var defaultDesignWidth = 750;
277
- var defaultDesignRatio = {
278
- 640: 2.34 / 2,
279
- 750: 1,
280
- 828: 1.81 / 2
281
- };
282
- var defaultBaseFontSize = 20;
283
- var defaultUnitPrecision = 5;
284
- var defaultTargetUnit = 'rpx';
285
- function getInitPxTransform(taro) {
286
- return function (config) {
287
- var _config$designWidth = config.designWidth,
288
- designWidth = _config$designWidth === void 0 ? defaultDesignWidth : _config$designWidth,
289
- _config$deviceRatio = config.deviceRatio,
290
- deviceRatio = _config$deviceRatio === void 0 ? defaultDesignRatio : _config$deviceRatio,
291
- _config$baseFontSize = config.baseFontSize,
292
- baseFontSize = _config$baseFontSize === void 0 ? defaultBaseFontSize : _config$baseFontSize,
293
- _config$targetUnit = config.targetUnit,
294
- targetUnit = _config$targetUnit === void 0 ? defaultTargetUnit : _config$targetUnit,
295
- _config$unitPrecision = config.unitPrecision,
296
- unitPrecision = _config$unitPrecision === void 0 ? defaultUnitPrecision : _config$unitPrecision;
297
- taro.config = taro.config || {};
298
- taro.config.designWidth = designWidth;
299
- taro.config.deviceRatio = deviceRatio;
300
- taro.config.baseFontSize = baseFontSize;
301
- taro.config.targetUnit = targetUnit;
302
- taro.config.unitPrecision = unitPrecision;
303
- };
304
- }
305
- function getPxTransform(taro) {
306
- return function (size) {
307
- var config = taro.config || {};
308
- var baseFontSize = config.baseFontSize;
309
- var deviceRatio = config.deviceRatio || defaultDesignRatio;
310
- var designWidth = function () {
311
- var input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
312
- return isFunction(config.designWidth) ? config.designWidth(input) : config.designWidth || defaultDesignWidth;
313
- }(size);
314
- if (!(designWidth in deviceRatio)) {
315
- throw new Error("deviceRatio \u914D\u7F6E\u4E2D\u4E0D\u5B58\u5728 ".concat(designWidth, " \u7684\u8BBE\u7F6E\uFF01"));
316
- }
317
- var targetUnit = config.targetUnit || defaultTargetUnit;
318
- var unitPrecision = config.unitPrecision || defaultUnitPrecision;
319
- var formatSize = ~~size;
320
- var rootValue = 1 / deviceRatio[designWidth];
321
- switch (targetUnit) {
322
- case 'rem':
323
- rootValue *= baseFontSize * 2;
324
- break;
325
- case 'px':
326
- rootValue *= 2;
327
- break;
328
- }
329
- var val = formatSize / rootValue;
330
- if (unitPrecision >= 0 && unitPrecision <= 100) {
331
- val = Number(val.toFixed(unitPrecision));
332
- }
333
- return val + targetUnit;
334
- };
335
- }
1
+ import { Current, getCurrentInstance, options, nextTick, eventCenter, Events } from '@tarojs/runtime';
2
+ import { getEnv, ENV_TYPE } from './env.js';
3
+ import Link, { interceptorify } from './interceptor/index.js';
4
+ import * as interceptors from './interceptor/interceptors.js';
5
+ import { Behavior, getInitPxTransform, getPreload, getPxTransform } from './tools.js';
336
6
 
337
7
  /* eslint-disable camelcase */
338
- var Taro = {
339
- Behavior: Behavior,
340
- getEnv: getEnv,
341
- ENV_TYPE: ENV_TYPE,
342
- Link: Link,
343
- interceptors: interceptors,
344
- Current: runtime.Current,
345
- getCurrentInstance: runtime.getCurrentInstance,
346
- options: runtime.options,
347
- nextTick: runtime.nextTick,
348
- eventCenter: runtime.eventCenter,
349
- Events: runtime.Events,
350
- getInitPxTransform: getInitPxTransform,
351
- interceptorify: interceptorify
8
+ const Taro = {
9
+ Behavior,
10
+ getEnv,
11
+ ENV_TYPE,
12
+ Link,
13
+ interceptors,
14
+ Current,
15
+ getCurrentInstance,
16
+ options,
17
+ nextTick,
18
+ eventCenter,
19
+ Events,
20
+ getInitPxTransform,
21
+ interceptorify
352
22
  };
353
23
  Taro.initPxTransform = getInitPxTransform(Taro);
354
- Taro.preload = getPreload(runtime.Current);
24
+ Taro.preload = getPreload(Current);
355
25
  Taro.pxTransform = getPxTransform(Taro);
356
26
 
357
- exports["default"] = Taro;
27
+ export { Taro as default };
358
28
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/utils.js","../src/polyfill.js","../src/env.js","../src/interceptor/chain.js","../src/interceptor/index.js","../src/interceptor/interceptors.js","../src/tools.js","../src/index.js"],"sourcesContent":["export function isFunction (x) {\n return typeof x === 'function'\n}\n\nexport function isUndefined (x) {\n return typeof x === 'undefined'\n}\n\nexport function isObject (x) {\n return x && typeof x === 'object'\n}\n","import { isFunction, isObject, isUndefined } from './utils'\n\nconst isBadObj = (x) => !isObject(x)\n\nfunction throwTypeError (s) {\n throw new TypeError(s)\n}\n\nif (!isFunction(Object.assign)) {\n // Must be writable: true, enumerable: false, configurable: true\n Object.assign = function (target) { // .length of function is 2\n if (target == null) { // TypeError if undefined or null\n throwTypeError('Cannot convert undefined or null to object')\n }\n\n const to = Object(target)\n\n for (let index = 1; index < arguments.length; index++) {\n const nextSource = arguments[index]\n\n if (nextSource != null) { // Skip over if undefined or null\n for (const nextKey in nextSource) {\n // Avoid bugs when hasOwnProperty is shadowed\n if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\n to[nextKey] = nextSource[nextKey]\n }\n }\n }\n }\n return to\n }\n}\n\nif (!isFunction(Object.defineProperties)) {\n Object.defineProperties = function (obj, properties) {\n function convertToDescriptor (desc) {\n function hasProperty (obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop)\n }\n\n if (isBadObj(desc)) { throwTypeError('bad desc') }\n\n const d = {}\n\n if (hasProperty(desc, 'enumerable')) d.enumerable = !!desc.enumerable\n if (hasProperty(desc, 'configurable')) { d.configurable = !!desc.configurable }\n if (hasProperty(desc, 'value')) d.value = desc.value\n if (hasProperty(desc, 'writable')) d.writable = !!desc.writable\n if (hasProperty(desc, 'get')) {\n const g = desc.get\n\n if (!isFunction(g) && !isUndefined(g)) { throwTypeError('bad get') }\n d.get = g\n }\n if (hasProperty(desc, 'set')) {\n const s = desc.set\n if (!isFunction(s) && !isUndefined(s)) { throwTypeError('bad set') }\n d.set = s\n }\n\n if (('get' in d || 'set' in d) && ('value' in d || 'writable' in d)) { throwTypeError('identity-confused descriptor') }\n\n return d\n }\n\n if (isBadObj(obj)) throwTypeError('bad obj')\n\n properties = Object(properties)\n\n const keys = Object.keys(properties)\n const descs = []\n\n for (let i = 0; i < keys.length; i++) {\n descs.push([keys[i], convertToDescriptor(properties[keys[i]])])\n }\n\n for (let i = 0; i < descs.length; i++) {\n Object.defineProperty(obj, descs[i][0], descs[i][1])\n }\n\n return obj\n }\n}\n","import { isWebPlatform } from '@tarojs/shared'\n\nexport const ENV_TYPE = {\n WEAPP: 'WEAPP',\n SWAN: 'SWAN',\n ALIPAY: 'ALIPAY',\n TT: 'TT',\n QQ: 'QQ',\n JD: 'JD',\n WEB: 'WEB',\n RN: 'RN',\n HARMONY: 'HARMONY',\n QUICKAPP: 'QUICKAPP'\n}\n\nconst isWeb = isWebPlatform()\n\nexport function getEnv () {\n if (process.env.TARO_ENV === 'weapp') {\n return ENV_TYPE.WEAPP\n } else if (process.env.TARO_ENV === 'alipay') {\n return ENV_TYPE.ALIPAY\n } else if (process.env.TARO_ENV === 'swan') {\n return ENV_TYPE.SWAN\n } else if (process.env.TARO_ENV === 'tt') {\n return ENV_TYPE.TT\n } else if (process.env.TARO_ENV === 'jd') {\n return ENV_TYPE.JD\n } else if (process.env.TARO_ENV === 'qq') {\n return ENV_TYPE.QQ\n } else if (isWeb) {\n return ENV_TYPE.WEB\n } else if (process.env.TARO_ENV === 'rn') {\n return ENV_TYPE.RN\n } else if (process.env.TARO_ENV === 'harmony') {\n return ENV_TYPE.HARMONY\n } else if (process.env.TARO_ENV === 'quickapp') {\n return ENV_TYPE.QUICKAPP\n } else {\n return process.env.TARO_ENV || 'Unknown'\n }\n}\n","import { isFunction } from '../utils'\n\nexport default class Chain {\n constructor (requestParams, interceptors, index) {\n this.index = index || 0\n this.requestParams = requestParams\n this.interceptors = interceptors || []\n }\n\n proceed (requestParams) {\n this.requestParams = requestParams\n if (this.index >= this.interceptors.length) {\n throw new Error('chain 参数错误, 请勿直接修改 request.chain')\n }\n const nextInterceptor = this._getNextInterceptor()\n const nextChain = this._getNextChain()\n const p = nextInterceptor(nextChain)\n const res = p.catch(err => Promise.reject(err))\n Object.keys(p).forEach(k => isFunction(p[k]) && (res[k] = p[k]))\n return res\n }\n\n _getNextInterceptor () {\n return this.interceptors[this.index]\n }\n\n _getNextChain () {\n return new Chain(this.requestParams, this.interceptors, this.index + 1)\n }\n}\n","import Chain from './chain'\n\nexport default class Link {\n constructor (interceptor) {\n this.taroInterceptor = interceptor\n this.chain = new Chain()\n }\n\n request (requestParams) {\n const chain = this.chain\n const taroInterceptor = this.taroInterceptor\n\n chain.interceptors = chain.interceptors\n .filter(interceptor => interceptor !== taroInterceptor)\n .concat(taroInterceptor)\n\n return chain.proceed({ ...requestParams })\n }\n\n addInterceptor (interceptor) {\n this.chain.interceptors.push(interceptor)\n }\n\n cleanInterceptors () {\n this.chain = new Chain()\n }\n}\n\nexport function interceptorify (promiseifyApi) {\n return new Link(function (chain) {\n return promiseifyApi(chain.requestParams)\n })\n}\n","import { isFunction, isUndefined } from '../utils'\n\nexport function timeoutInterceptor (chain) {\n const requestParams = chain.requestParams\n let p\n const res = new Promise((resolve, reject) => {\n let timeout = setTimeout(() => {\n timeout = null\n reject(new Error('网络链接超时,请稍后再试!'))\n }, (requestParams && requestParams.timeout) || 60000)\n\n p = chain.proceed(requestParams)\n p\n .then(res => {\n if (!timeout) return\n clearTimeout(timeout)\n resolve(res)\n })\n .catch(err => {\n timeout && clearTimeout(timeout)\n reject(err)\n })\n })\n if (!isUndefined(p) && isFunction(p.abort)) res.abort = p.abort\n\n return res\n}\n\nexport function logInterceptor (chain) {\n const requestParams = chain.requestParams\n const { method, data, url } = requestParams\n\n // eslint-disable-next-line no-console\n console.log(`http ${method || 'GET'} --> ${url} data: `, data)\n\n const p = chain.proceed(requestParams)\n const res = p\n .then(res => {\n // eslint-disable-next-line no-console\n console.log(`http <-- ${url} result:`, res)\n return res\n })\n if (isFunction(p.abort)) res.abort = p.abort\n\n return res\n}\n","import { isFunction, isObject } from './utils'\n\nexport function Behavior (options) {\n return options\n}\n\nexport function getPreload (current) {\n return function (key, val) {\n current.preloadData = isObject(key)\n ? key\n : {\n [key]: val\n }\n }\n}\n\nconst defaultDesignWidth = 750\nconst defaultDesignRatio = {\n 640: 2.34 / 2,\n 750: 1,\n 828: 1.81 / 2\n}\nconst defaultBaseFontSize = 20\nconst defaultUnitPrecision = 5\nconst defaultTargetUnit = 'rpx'\n\nexport function getInitPxTransform (taro) {\n return function (config) {\n const {\n designWidth = defaultDesignWidth,\n deviceRatio = defaultDesignRatio,\n baseFontSize = defaultBaseFontSize,\n targetUnit = defaultTargetUnit,\n unitPrecision = defaultUnitPrecision,\n } = config\n taro.config = taro.config || {}\n taro.config.designWidth = designWidth\n taro.config.deviceRatio = deviceRatio\n taro.config.baseFontSize = baseFontSize\n taro.config.targetUnit = targetUnit\n taro.config.unitPrecision = unitPrecision\n }\n}\n\nexport function getPxTransform (taro) {\n return function (size) {\n const config = taro.config || {}\n const baseFontSize = config.baseFontSize\n const deviceRatio = config.deviceRatio || defaultDesignRatio\n const designWidth = (((input = 0) => isFunction(config.designWidth)\n ? config.designWidth(input)\n : config.designWidth || defaultDesignWidth))(size)\n if (!(designWidth in deviceRatio)) {\n throw new Error(`deviceRatio 配置中不存在 ${designWidth} 的设置!`)\n }\n const targetUnit = config.targetUnit || defaultTargetUnit\n const unitPrecision = config.unitPrecision || defaultUnitPrecision\n const formatSize = ~~size\n let rootValue = 1 / deviceRatio[designWidth]\n switch (targetUnit) {\n case 'rem':\n rootValue *= baseFontSize * 2\n break\n case 'px':\n rootValue *= 2\n break\n }\n let val = formatSize / rootValue\n if (unitPrecision >= 0 && unitPrecision <= 100) {\n val = Number(val.toFixed(unitPrecision))\n }\n return val + targetUnit\n }\n}\n","/* eslint-disable camelcase */\nimport './polyfill'\n\nimport {\n Current,\n eventCenter,\n Events,\n getCurrentInstance,\n nextTick,\n options\n} from '@tarojs/runtime'\n\nimport { ENV_TYPE, getEnv } from './env'\nimport Link, { interceptorify } from './interceptor'\nimport * as interceptors from './interceptor/interceptors'\nimport {\n Behavior,\n getInitPxTransform,\n getPreload,\n getPxTransform,\n} from './tools'\n\nconst Taro = {\n Behavior,\n getEnv,\n ENV_TYPE,\n Link,\n interceptors,\n Current,\n getCurrentInstance,\n options,\n nextTick,\n eventCenter,\n Events,\n getInitPxTransform,\n interceptorify\n}\n\nTaro.initPxTransform = getInitPxTransform(Taro)\nTaro.preload = getPreload(Current)\nTaro.pxTransform = getPxTransform(Taro)\n\nexport default Taro\n"],"names":["isFunction","x","isUndefined","isObject","_typeof","isBadObj","throwTypeError","s","TypeError","Object","assign","target","to","index","arguments","length","nextSource","nextKey","prototype","hasOwnProperty","call","defineProperties","obj","properties","convertToDescriptor","desc","hasProperty","prop","d","enumerable","configurable","value","writable","g","get","set","keys","descs","i","push","defineProperty","ENV_TYPE","WEAPP","SWAN","ALIPAY","TT","QQ","JD","WEB","RN","HARMONY","QUICKAPP","isWeb","isWebPlatform","getEnv","process","env","TARO_ENV","Chain","requestParams","interceptors","_classCallCheck","_createClass","key","proceed","Error","nextInterceptor","_getNextInterceptor","nextChain","_getNextChain","p","res","catch","err","Promise","reject","forEach","k","Link","interceptor","taroInterceptor","chain","request","filter","concat","_objectSpread","addInterceptor","cleanInterceptors","interceptorify","promiseifyApi","timeoutInterceptor","resolve","timeout","setTimeout","then","clearTimeout","abort","logInterceptor","method","data","url","console","log","Behavior","options","getPreload","current","val","preloadData","_defineProperty","defaultDesignWidth","defaultDesignRatio","defaultBaseFontSize","defaultUnitPrecision","defaultTargetUnit","getInitPxTransform","taro","config","_config$designWidth","designWidth","_config$deviceRatio","deviceRatio","_config$baseFontSize","baseFontSize","_config$targetUnit","targetUnit","_config$unitPrecision","unitPrecision","getPxTransform","size","input","undefined","formatSize","rootValue","Number","toFixed","Taro","Current","getCurrentInstance","nextTick","eventCenter","Events","initPxTransform","preload","pxTransform"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable camelcase */\nimport {\n Current,\n eventCenter,\n Events,\n getCurrentInstance,\n nextTick,\n options\n} from '@tarojs/runtime'\n\nimport { ENV_TYPE, getEnv } from './env'\nimport Link, { interceptorify } from './interceptor'\nimport * as interceptors from './interceptor/interceptors'\nimport {\n Behavior,\n getInitPxTransform,\n getPreload,\n getPxTransform,\n} from './tools'\n\nconst Taro: Record<string, unknown> = {\n Behavior,\n getEnv,\n ENV_TYPE,\n Link,\n interceptors,\n Current,\n getCurrentInstance,\n options,\n nextTick,\n eventCenter,\n Events,\n getInitPxTransform,\n interceptorify\n}\n\nTaro.initPxTransform = getInitPxTransform(Taro)\nTaro.preload = getPreload(Current)\nTaro.pxTransform = getPxTransform(Taro)\n\nexport default Taro\n"],"names":[],"mappings":";;;;;;AAAA;AAoBA,MAAM,IAAI,GAA4B;IACpC,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,IAAI;IACJ,YAAY;IACZ,OAAO;IACP,kBAAkB;IAClB,OAAO;IACP,QAAQ;IACR,WAAW;IACX,MAAM;IACN,kBAAkB;IAClB,cAAc;EACf;AAED,IAAI,CAAC,eAAe,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAA;AAC/C,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;AAClC,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC;;;;"}
@@ -0,0 +1,16 @@
1
+ export type TInterceptor = (c: Chain) => Promise<void>;
2
+ export interface IRequestParams {
3
+ timeout?: number;
4
+ method?: string;
5
+ url?: string;
6
+ data?: unknown;
7
+ }
8
+ export default class Chain {
9
+ index: number;
10
+ requestParams: IRequestParams;
11
+ interceptors: TInterceptor[];
12
+ constructor(requestParams?: IRequestParams, interceptors?: TInterceptor[], index?: number);
13
+ proceed(requestParams?: IRequestParams): Promise<void>;
14
+ _getNextInterceptor(): TInterceptor;
15
+ _getNextChain(): Chain;
16
+ }
@@ -0,0 +1,30 @@
1
+ import { isFunction } from '@tarojs/shared';
2
+
3
+ class Chain {
4
+ constructor(requestParams, interceptors, index) {
5
+ this.index = index || 0;
6
+ this.requestParams = requestParams || {};
7
+ this.interceptors = interceptors || [];
8
+ }
9
+ proceed(requestParams = {}) {
10
+ this.requestParams = requestParams;
11
+ if (this.index >= this.interceptors.length) {
12
+ throw new Error('chain 参数错误, 请勿直接修改 request.chain');
13
+ }
14
+ const nextInterceptor = this._getNextInterceptor();
15
+ const nextChain = this._getNextChain();
16
+ const p = nextInterceptor(nextChain);
17
+ const res = p.catch(err => Promise.reject(err));
18
+ Object.keys(p).forEach(k => isFunction(p[k]) && (res[k] = p[k]));
19
+ return res;
20
+ }
21
+ _getNextInterceptor() {
22
+ return this.interceptors[this.index];
23
+ }
24
+ _getNextChain() {
25
+ return new Chain(this.requestParams, this.interceptors, this.index + 1);
26
+ }
27
+ }
28
+
29
+ export { Chain as default };
30
+ //# sourceMappingURL=chain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain.js","sources":["../../src/interceptor/chain.ts"],"sourcesContent":["import { isFunction } from '@tarojs/shared'\n\nexport type TInterceptor = (c: Chain) => Promise<void>\n\nexport interface IRequestParams {\n timeout?: number\n method?: string\n url?: string\n data?: unknown\n}\n\nexport default class Chain {\n index: number\n requestParams: IRequestParams\n interceptors: TInterceptor[]\n\n constructor (requestParams?: IRequestParams, interceptors?: TInterceptor[], index?: number) {\n this.index = index || 0\n this.requestParams = requestParams || {}\n this.interceptors = interceptors || []\n }\n\n proceed (requestParams: IRequestParams = {}) {\n this.requestParams = requestParams\n if (this.index >= this.interceptors.length) {\n throw new Error('chain 参数错误, 请勿直接修改 request.chain')\n }\n const nextInterceptor = this._getNextInterceptor()\n const nextChain = this._getNextChain()\n const p = nextInterceptor(nextChain)\n const res = p.catch(err => Promise.reject(err))\n Object.keys(p).forEach(k => isFunction(p[k]) && (res[k] = p[k]))\n return res\n }\n\n _getNextInterceptor () {\n return this.interceptors[this.index]\n }\n\n _getNextChain () {\n return new Chain(this.requestParams, this.interceptors, this.index + 1)\n }\n}\n"],"names":[],"mappings":";;AAWc,MAAO,KAAK,CAAA;AAKxB,IAAA,WAAA,CAAa,aAA8B,EAAE,YAA6B,EAAE,KAAc,EAAA;AACxF,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,CAAC,CAAA;AACvB,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,EAAE,CAAA;AACxC,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY,IAAI,EAAE,CAAA;KACvC;IAED,OAAO,CAAE,gBAAgC,EAAE,EAAA;AACzC,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;QAClC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;AAC1C,YAAA,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;SACpD;AACD,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAA;AAClD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;AACtC,QAAA,MAAM,CAAC,GAAG,eAAe,CAAC,SAAS,CAAC,CAAA;AACpC,QAAA,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;AAC/C,QAAA,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAChE,QAAA,OAAO,GAAG,CAAA;KACX;IAED,mBAAmB,GAAA;QACjB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACrC;IAED,aAAa,GAAA;AACX,QAAA,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;KACxE;AACF;;;;"}
@@ -0,0 +1,11 @@
1
+ import Chain from './chain';
2
+ import type { IRequestParams, TInterceptor } from './chain';
3
+ export default class Link {
4
+ taroInterceptor: TInterceptor;
5
+ chain: Chain;
6
+ constructor(interceptor: TInterceptor);
7
+ request(requestParams: IRequestParams): Promise<void>;
8
+ addInterceptor(interceptor: TInterceptor): void;
9
+ cleanInterceptors(): void;
10
+ }
11
+ export declare function interceptorify(promiseifyApi: any): Link;
@@ -0,0 +1,30 @@
1
+ import Chain from './chain.js';
2
+
3
+ class Link {
4
+ constructor(interceptor) {
5
+ this.taroInterceptor = interceptor;
6
+ this.chain = new Chain();
7
+ }
8
+ request(requestParams) {
9
+ const chain = this.chain;
10
+ const taroInterceptor = this.taroInterceptor;
11
+ chain.interceptors = chain.interceptors
12
+ .filter(interceptor => interceptor !== taroInterceptor)
13
+ .concat(taroInterceptor);
14
+ return chain.proceed(Object.assign({}, requestParams));
15
+ }
16
+ addInterceptor(interceptor) {
17
+ this.chain.interceptors.push(interceptor);
18
+ }
19
+ cleanInterceptors() {
20
+ this.chain = new Chain();
21
+ }
22
+ }
23
+ function interceptorify(promiseifyApi) {
24
+ return new Link(function (chain) {
25
+ return promiseifyApi(chain.requestParams);
26
+ });
27
+ }
28
+
29
+ export { Link as default, interceptorify };
30
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../src/interceptor/index.ts"],"sourcesContent":["import Chain from './chain'\n\nimport type { IRequestParams, TInterceptor } from './chain'\n\nexport default class Link {\n taroInterceptor: TInterceptor\n chain: Chain\n\n constructor (interceptor: TInterceptor) {\n this.taroInterceptor = interceptor\n this.chain = new Chain()\n }\n\n request (requestParams: IRequestParams) {\n const chain = this.chain\n const taroInterceptor = this.taroInterceptor\n\n chain.interceptors = chain.interceptors\n .filter(interceptor => interceptor !== taroInterceptor)\n .concat(taroInterceptor)\n\n return chain.proceed({ ...requestParams })\n }\n\n addInterceptor (interceptor: TInterceptor) {\n this.chain.interceptors.push(interceptor)\n }\n\n cleanInterceptors () {\n this.chain = new Chain()\n }\n}\n\nexport function interceptorify (promiseifyApi) {\n return new Link(function (chain) {\n return promiseifyApi(chain.requestParams)\n })\n}\n"],"names":[],"mappings":";;AAIc,MAAO,IAAI,CAAA;AAIvB,IAAA,WAAA,CAAa,WAAyB,EAAA;AACpC,QAAA,IAAI,CAAC,eAAe,GAAG,WAAW,CAAA;AAClC,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;KACzB;AAED,IAAA,OAAO,CAAE,aAA6B,EAAA;AACpC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAA;AAE5C,QAAA,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY;aACpC,MAAM,CAAC,WAAW,IAAI,WAAW,KAAK,eAAe,CAAC;aACtD,MAAM,CAAC,eAAe,CAAC,CAAA;AAE1B,QAAA,OAAO,KAAK,CAAC,OAAO,CAAM,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,aAAa,EAAG,CAAA;KAC3C;AAED,IAAA,cAAc,CAAE,WAAyB,EAAA;QACvC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;KAC1C;IAED,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;KACzB;AACF,CAAA;AAEK,SAAU,cAAc,CAAE,aAAa,EAAA;AAC3C,IAAA,OAAO,IAAI,IAAI,CAAC,UAAU,KAAK,EAAA;AAC7B,QAAA,OAAO,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;AAC3C,KAAC,CAAC,CAAA;AACJ;;;;"}
@@ -0,0 +1,3 @@
1
+ import type Chain from './chain';
2
+ export declare function timeoutInterceptor(chain: Chain): Promise<void>;
3
+ export declare function logInterceptor(chain: Chain): Promise<void>;
@@ -0,0 +1,48 @@
1
+ import { isUndefined, isFunction } from '@tarojs/shared';
2
+
3
+ function timeoutInterceptor(chain) {
4
+ const requestParams = chain.requestParams;
5
+ let p;
6
+ const res = new Promise((resolve, reject) => {
7
+ const timeout = setTimeout(() => {
8
+ clearTimeout(timeout);
9
+ reject(new Error('网络链接超时,请稍后再试!'));
10
+ }, (requestParams && requestParams.timeout) || 60000);
11
+ p = chain.proceed(requestParams);
12
+ p
13
+ .then(res => {
14
+ if (!timeout)
15
+ return;
16
+ clearTimeout(timeout);
17
+ resolve(res);
18
+ })
19
+ .catch(err => {
20
+ timeout && clearTimeout(timeout);
21
+ reject(err);
22
+ });
23
+ });
24
+ // @ts-ignore
25
+ if (!isUndefined(p) && isFunction(p.abort))
26
+ res.abort = p.abort;
27
+ return res;
28
+ }
29
+ function logInterceptor(chain) {
30
+ const requestParams = chain.requestParams;
31
+ const { method, data, url } = requestParams;
32
+ // eslint-disable-next-line no-console
33
+ console.log(`http ${method || 'GET'} --> ${url} data: `, data);
34
+ const p = chain.proceed(requestParams);
35
+ const res = p
36
+ .then(res => {
37
+ // eslint-disable-next-line no-console
38
+ console.log(`http <-- ${url} result:`, res);
39
+ return res;
40
+ });
41
+ // @ts-ignore
42
+ if (isFunction(p.abort))
43
+ res.abort = p.abort;
44
+ return res;
45
+ }
46
+
47
+ export { logInterceptor, timeoutInterceptor };
48
+ //# sourceMappingURL=interceptors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interceptors.js","sources":["../../src/interceptor/interceptors.ts"],"sourcesContent":["import { isFunction, isUndefined } from '@tarojs/shared'\n\nimport type Chain from './chain'\n\nexport function timeoutInterceptor (chain: Chain) {\n const requestParams = chain.requestParams\n let p: Promise<void>\n const res = new Promise<void>((resolve, reject) => {\n const timeout: ReturnType<typeof setTimeout> = setTimeout(() => {\n clearTimeout(timeout)\n reject(new Error('网络链接超时,请稍后再试!'))\n }, (requestParams && requestParams.timeout) || 60000)\n\n p = chain.proceed(requestParams)\n p\n .then(res => {\n if (!timeout) return\n clearTimeout(timeout)\n resolve(res)\n })\n .catch(err => {\n timeout && clearTimeout(timeout)\n reject(err)\n })\n })\n // @ts-ignore\n if (!isUndefined(p) && isFunction(p.abort)) res.abort = p.abort\n\n return res\n}\n\nexport function logInterceptor (chain: Chain) {\n const requestParams = chain.requestParams\n const { method, data, url } = requestParams\n\n // eslint-disable-next-line no-console\n console.log(`http ${method || 'GET'} --> ${url} data: `, data)\n\n const p = chain.proceed(requestParams)\n const res = p\n .then(res => {\n // eslint-disable-next-line no-console\n console.log(`http <-- ${url} result:`, res)\n return res\n })\n // @ts-ignore\n if (isFunction(p.abort)) res.abort = p.abort\n\n return res\n}\n"],"names":[],"mappings":";;AAIM,SAAU,kBAAkB,CAAE,KAAY,EAAA;AAC9C,IAAA,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAA;AACzC,IAAA,IAAI,CAAgB,CAAA;IACpB,MAAM,GAAG,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,KAAI;AAChD,QAAA,MAAM,OAAO,GAAkC,UAAU,CAAC,MAAK;YAC7D,YAAY,CAAC,OAAO,CAAC,CAAA;AACrB,YAAA,MAAM,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAA;SACnC,EAAE,CAAC,aAAa,IAAI,aAAa,CAAC,OAAO,KAAK,KAAK,CAAC,CAAA;AAErD,QAAA,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;QAChC,CAAC;aACE,IAAI,CAAC,GAAG,IAAG;AACV,YAAA,IAAI,CAAC,OAAO;gBAAE,OAAM;YACpB,YAAY,CAAC,OAAO,CAAC,CAAA;YACrB,OAAO,CAAC,GAAG,CAAC,CAAA;AACd,SAAC,CAAC;aACD,KAAK,CAAC,GAAG,IAAG;AACX,YAAA,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,CAAA;YAChC,MAAM,CAAC,GAAG,CAAC,CAAA;AACb,SAAC,CAAC,CAAA;AACN,KAAC,CAAC,CAAA;;IAEF,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;AAAE,QAAA,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAA;AAE/D,IAAA,OAAO,GAAG,CAAA;AACZ,CAAC;AAEK,SAAU,cAAc,CAAE,KAAY,EAAA;AAC1C,IAAA,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAA;IACzC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,aAAa,CAAA;;AAG3C,IAAA,OAAO,CAAC,GAAG,CAAC,CAAA,KAAA,EAAQ,MAAM,IAAI,KAAK,CAAA,KAAA,EAAQ,GAAG,CAAA,OAAA,CAAS,EAAE,IAAI,CAAC,CAAA;IAE9D,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;IACtC,MAAM,GAAG,GAAG,CAAC;SACV,IAAI,CAAC,GAAG,IAAG;;QAEV,OAAO,CAAC,GAAG,CAAC,CAAA,SAAA,EAAY,GAAG,CAAU,QAAA,CAAA,EAAE,GAAG,CAAC,CAAA;AAC3C,QAAA,OAAO,GAAG,CAAA;AACZ,KAAC,CAAC,CAAA;;AAEJ,IAAA,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;AAAE,QAAA,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAA;AAE5C,IAAA,OAAO,GAAG,CAAA;AACZ;;;;"}