@tarojs/taro-h5 3.6.5-alpha.1 → 3.6.5-alpha.2

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.
@@ -1,9 +1,10 @@
1
1
  import { __awaiter } from '../../node_modules/.pnpm/registry.npmjs.org_tslib@1.14.1/node_modules/tslib/tslib.es6.js';
2
- import { temporarilyNotSupport } from '../../utils/index.js';
2
+ import { permanentlyNotSupport } from '../../utils/index.js';
3
3
  import { MethodHandler } from '../../utils/handler.js';
4
4
 
5
5
  // 电量
6
- const getBatteryInfoSync = temporarilyNotSupport('getBatteryInfoSync');
6
+ // Note: 浏览器标准下不支持,其他实现方案不准确,不建议开发者使用
7
+ const getBatteryInfoSync = permanentlyNotSupport('getBatteryInfoSync');
7
8
  const getBatteryInfo = ({ success, fail, complete } = {}) => __awaiter(void 0, void 0, void 0, function* () {
8
9
  var _a;
9
10
  const handle = new MethodHandler({ name: 'getBatteryInfo', success, fail, complete });
@@ -1 +1 @@
1
- {"version":3,"file":"battery.js","sources":["../../../src/api/device/battery.ts"],"sourcesContent":["import Taro from '@tarojs/api'\n\nimport { temporarilyNotSupport } from '../../utils'\nimport { MethodHandler } from '../../utils/handler'\n\n// 电量\nexport const getBatteryInfoSync = temporarilyNotSupport('getBatteryInfoSync')\n\nexport const getBatteryInfo: typeof Taro.getBatteryInfo = async ({ success, fail, complete } = {}) => {\n const handle = new MethodHandler({ name: 'getBatteryInfo', success, fail, complete })\n try {\n // @ts-ignore\n const battery = await navigator.getBattery?.()\n return handle.success({\n isCharging: battery.charging,\n level: Number(battery.level || 0) * 100\n })\n } catch (error) {\n return handle.fail({\n errMsg: error?.message || error\n })\n }\n}\n"],"names":[],"mappings":";;;;AAKA;MACa,kBAAkB,GAAG,qBAAqB,CAAC,oBAAoB,EAAC;AAEtE,MAAM,cAAc,GAA+B,CAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAI,SAAA,CAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;;AACnG,IAAA,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;IACrF,IAAI;;QAEF,MAAM,OAAO,GAAG,OAAM,CAAA,EAAA,GAAA,SAAS,CAAC,UAAU,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,SAAA,CAAA,CAAA,CAAA;QAC9C,OAAO,MAAM,CAAC,OAAO,CAAC;YACpB,UAAU,EAAE,OAAO,CAAC,QAAQ;YAC5B,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,GAAG;AACxC,SAAA,CAAC,CAAA;AACH,KAAA;AAAC,IAAA,OAAO,KAAK,EAAE;QACd,OAAO,MAAM,CAAC,IAAI,CAAC;YACjB,MAAM,EAAE,CAAA,KAAK,KAAL,IAAA,IAAA,KAAK,uBAAL,KAAK,CAAE,OAAO,KAAI,KAAK;AAChC,SAAA,CAAC,CAAA;AACH,KAAA;AACH,CAAC;;;;"}
1
+ {"version":3,"file":"battery.js","sources":["../../../src/api/device/battery.ts"],"sourcesContent":["import Taro from '@tarojs/api'\n\nimport { permanentlyNotSupport } from '../../utils'\nimport { MethodHandler } from '../../utils/handler'\n\n// 电量\n\n// Note: 浏览器标准下不支持,其他实现方案不准确,不建议开发者使用\nexport const getBatteryInfoSync = permanentlyNotSupport('getBatteryInfoSync')\n\nexport const getBatteryInfo: typeof Taro.getBatteryInfo = async ({ success, fail, complete } = {}) => {\n const handle = new MethodHandler({ name: 'getBatteryInfo', success, fail, complete })\n try {\n // @ts-ignore\n const battery = await navigator.getBattery?.()\n return handle.success({\n isCharging: battery.charging,\n level: Number(battery.level || 0) * 100\n })\n } catch (error) {\n return handle.fail({\n errMsg: error?.message || error\n })\n }\n}\n"],"names":[],"mappings":";;;;AAKA;AAEA;MACa,kBAAkB,GAAG,qBAAqB,CAAC,oBAAoB,EAAC;AAEtE,MAAM,cAAc,GAA+B,CAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAI,SAAA,CAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;;AACnG,IAAA,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;IACrF,IAAI;;QAEF,MAAM,OAAO,GAAG,OAAM,CAAA,EAAA,GAAA,SAAS,CAAC,UAAU,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,SAAA,CAAA,CAAA,CAAA;QAC9C,OAAO,MAAM,CAAC,OAAO,CAAC;YACpB,UAAU,EAAE,OAAO,CAAC,QAAQ;YAC5B,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,GAAG;AACxC,SAAA,CAAC,CAAA;AACH,KAAA;AAAC,IAAA,OAAO,KAAK,EAAE;QACd,OAAO,MAAM,CAAC,IAAI,CAAC;YACjB,MAAM,EAAE,CAAA,KAAK,KAAL,IAAA,IAAA,KAAK,uBAAL,KAAK,CAAE,OAAO,KAAI,KAAK;AAChC,SAAA,CAAC,CAAA;AACH,KAAA;AACH,CAAC;;;;"}
@@ -1,4 +1,5 @@
1
1
  import 'whatwg-fetch';
2
+ import 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only';
2
3
  import Taro from '@tarojs/api';
3
4
  import { isFunction } from '@tarojs/shared';
4
5
  import jsonpRetry from 'jsonp-retry';
@@ -80,12 +81,24 @@ function _request(options) {
80
81
  if (options.mode) {
81
82
  params.mode = options.mode;
82
83
  }
84
+ let timeoutTimer = null;
83
85
  if (options.signal) {
84
86
  params.signal = options.signal;
85
87
  }
88
+ else if (typeof options.timeout === 'number') {
89
+ const controller = new window.AbortController();
90
+ params.signal = controller.signal;
91
+ timeoutTimer = setTimeout(function () {
92
+ controller.abort();
93
+ }, options.timeout);
94
+ }
86
95
  params.credentials = options.credentials;
87
96
  return fetch(url, params)
88
97
  .then(response => {
98
+ if (timeoutTimer) {
99
+ clearTimeout(timeoutTimer);
100
+ timeoutTimer = null;
101
+ }
89
102
  if (!response) {
90
103
  const errorResponse = { ok: false };
91
104
  throw errorResponse;
@@ -117,6 +130,10 @@ function _request(options) {
117
130
  return res;
118
131
  })
119
132
  .catch(err => {
133
+ if (timeoutTimer) {
134
+ clearTimeout(timeoutTimer);
135
+ timeoutTimer = null;
136
+ }
120
137
  isFunction(fail) && fail(err);
121
138
  isFunction(complete) && complete(res);
122
139
  err.statusCode = res.statusCode;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/api/network/request/index.ts"],"sourcesContent":["import 'whatwg-fetch'\n\nimport Taro from '@tarojs/api'\nimport { isFunction } from '@tarojs/shared'\nimport jsonpRetry from 'jsonp-retry'\n\nimport { serializeParams } from '../../../utils'\n\n// @ts-ignore\nconst { Link } = Taro\n\nfunction generateRequestUrlWithParams (url: string, params?: unknown) {\n params = typeof params === 'string' ? params : serializeParams(params)\n if (params) {\n url += (~url.indexOf('?') ? '&' : '?') + params\n }\n url = url.replace('?&', '?')\n return url\n}\n\n// FIXME 移除 any 标注\nfunction _request (options) {\n options = options || {}\n if (typeof options === 'string') {\n options = {\n url: options\n }\n }\n const { success, complete, fail } = options\n let url = options.url\n const params: any = {}\n const res: any = {}\n if (options.jsonp) {\n Object.assign(params, options)\n params.params = options.data\n params.cache = options.jsonpCache\n if (typeof options.jsonp === 'string') {\n params.name = options.jsonp\n }\n delete params.jsonp\n return jsonpRetry(url, params)\n .then(data => {\n res.statusCode = 200\n res.data = data\n isFunction(success) && success(res)\n isFunction(complete) && complete(res)\n return res\n })\n .catch(err => {\n isFunction(fail) && fail(err)\n isFunction(complete) && complete(res)\n return Promise.reject(err)\n })\n }\n params.method = options.method || 'GET'\n const methodUpper = params.method.toUpperCase()\n params.cache = options.cache || 'default'\n if (methodUpper === 'GET' || methodUpper === 'HEAD') {\n url = generateRequestUrlWithParams(url, options.data)\n } else if (Object.prototype.toString.call(options.data) === '[object Object]') {\n options.header = options.header || {}\n\n const keyOfContentType = Object.keys(options.header).find(item => item.toLowerCase() === 'content-type')\n if (!keyOfContentType) {\n options.header['Content-Type'] = 'application/json'\n }\n const contentType = options.header[keyOfContentType || 'Content-Type']\n\n if (contentType.indexOf('application/json') >= 0) {\n params.body = JSON.stringify(options.data)\n } else if (contentType.indexOf('application/x-www-form-urlencoded') >= 0) {\n params.body = serializeParams(options.data)\n } else {\n params.body = options.data\n }\n } else {\n params.body = options.data\n }\n if (options.header) {\n params.headers = options.header\n }\n if (options.mode) {\n params.mode = options.mode\n }\n if (options.signal) {\n params.signal = options.signal\n }\n params.credentials = options.credentials\n return fetch(url, params)\n .then(response => {\n if (!response) {\n const errorResponse = { ok: false }\n throw errorResponse\n }\n res.statusCode = response.status\n res.header = {}\n for (const key of response.headers.keys()) {\n res.header[key] = response.headers.get(key)\n }\n if (options.responseType === 'arraybuffer') {\n return response.arrayBuffer()\n }\n if (res.statusCode !== 204) {\n if (options.dataType === 'json' || typeof options.dataType === 'undefined') {\n return response.json().catch(() => {\n return null\n })\n }\n }\n if (options.responseType === 'text' || options.dataType === 'text') {\n return response.text()\n }\n return Promise.resolve(null)\n })\n .then(data => {\n res.data = data\n isFunction(success) && success(res)\n isFunction(complete) && complete(res)\n return res\n })\n .catch(err => {\n isFunction(fail) && fail(err)\n isFunction(complete) && complete(res)\n err.statusCode = res.statusCode\n err.errMsg = err.message\n return Promise.reject(err)\n })\n}\n\nfunction taroInterceptor (chain) {\n return _request(chain.requestParams)\n}\n\nconst link = new Link(taroInterceptor)\n\nexport const request: typeof Taro.request = link.request.bind(link)\nexport const addInterceptor = link.addInterceptor.bind(link)\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/api/network/request/index.ts"],"sourcesContent":["import 'whatwg-fetch'\nimport 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only'\n\nimport Taro from '@tarojs/api'\nimport { isFunction } from '@tarojs/shared'\nimport jsonpRetry from 'jsonp-retry'\n\nimport { serializeParams } from '../../../utils'\n\n// @ts-ignore\nconst { Link } = Taro\n\nfunction generateRequestUrlWithParams (url: string, params?: unknown) {\n params = typeof params === 'string' ? params : serializeParams(params)\n if (params) {\n url += (~url.indexOf('?') ? '&' : '?') + params\n }\n url = url.replace('?&', '?')\n return url\n}\n\n// FIXME 移除 any 标注\nfunction _request (options) {\n options = options || {}\n if (typeof options === 'string') {\n options = {\n url: options\n }\n }\n const { success, complete, fail } = options\n let url = options.url\n const params: any = {}\n const res: any = {}\n if (options.jsonp) {\n Object.assign(params, options)\n params.params = options.data\n params.cache = options.jsonpCache\n if (typeof options.jsonp === 'string') {\n params.name = options.jsonp\n }\n delete params.jsonp\n return jsonpRetry(url, params)\n .then(data => {\n res.statusCode = 200\n res.data = data\n isFunction(success) && success(res)\n isFunction(complete) && complete(res)\n return res\n })\n .catch(err => {\n isFunction(fail) && fail(err)\n isFunction(complete) && complete(res)\n return Promise.reject(err)\n })\n }\n params.method = options.method || 'GET'\n const methodUpper = params.method.toUpperCase()\n params.cache = options.cache || 'default'\n if (methodUpper === 'GET' || methodUpper === 'HEAD') {\n url = generateRequestUrlWithParams(url, options.data)\n } else if (Object.prototype.toString.call(options.data) === '[object Object]') {\n options.header = options.header || {}\n\n const keyOfContentType = Object.keys(options.header).find(item => item.toLowerCase() === 'content-type')\n if (!keyOfContentType) {\n options.header['Content-Type'] = 'application/json'\n }\n const contentType = options.header[keyOfContentType || 'Content-Type']\n\n if (contentType.indexOf('application/json') >= 0) {\n params.body = JSON.stringify(options.data)\n } else if (contentType.indexOf('application/x-www-form-urlencoded') >= 0) {\n params.body = serializeParams(options.data)\n } else {\n params.body = options.data\n }\n } else {\n params.body = options.data\n }\n if (options.header) {\n params.headers = options.header\n }\n if (options.mode) {\n params.mode = options.mode\n }\n let timeoutTimer: ReturnType<typeof setTimeout> | null = null\n if (options.signal) {\n params.signal = options.signal\n } else if (typeof options.timeout === 'number') {\n const controller = new window.AbortController()\n params.signal = controller.signal\n timeoutTimer = setTimeout(function () {\n controller.abort()\n }, options.timeout)\n }\n params.credentials = options.credentials\n return fetch(url, params)\n .then(response => {\n if (timeoutTimer) {\n clearTimeout(timeoutTimer)\n timeoutTimer = null\n }\n if (!response) {\n const errorResponse = { ok: false }\n throw errorResponse\n }\n res.statusCode = response.status\n res.header = {}\n for (const key of response.headers.keys()) {\n res.header[key] = response.headers.get(key)\n }\n if (options.responseType === 'arraybuffer') {\n return response.arrayBuffer()\n }\n if (res.statusCode !== 204) {\n if (options.dataType === 'json' || typeof options.dataType === 'undefined') {\n return response.json().catch(() => {\n return null\n })\n }\n }\n if (options.responseType === 'text' || options.dataType === 'text') {\n return response.text()\n }\n return Promise.resolve(null)\n })\n .then(data => {\n res.data = data\n isFunction(success) && success(res)\n isFunction(complete) && complete(res)\n return res\n })\n .catch(err => {\n if (timeoutTimer) {\n clearTimeout(timeoutTimer)\n timeoutTimer = null\n }\n isFunction(fail) && fail(err)\n isFunction(complete) && complete(res)\n err.statusCode = res.statusCode\n err.errMsg = err.message\n return Promise.reject(err)\n })\n}\n\nfunction taroInterceptor (chain) {\n return _request(chain.requestParams)\n}\n\nconst link = new Link(taroInterceptor)\n\nexport const request: typeof Taro.request = link.request.bind(link)\nexport const addInterceptor = link.addInterceptor.bind(link)\n"],"names":[],"mappings":"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"}
@@ -149,6 +149,7 @@ declare const offAccelerometerChange: typeof Taro.offAccelerometerChange;
149
149
  // 无障碍
150
150
  declare const checkIsOpenAccessibility: (option?: {}, ...args: any[]) => Promise<Partial<TaroGeneral.CallbackResult> & Record<string, unknown> & TaroGeneral.CallbackResult>;
151
151
  // 电量
152
+ // Note: 浏览器标准下不支持,其他实现方案不准确,不建议开发者使用
152
153
  declare const getBatteryInfoSync: (option?: {}, ...args: any[]) => Promise<Partial<TaroGeneral.CallbackResult> & Record<string, unknown> & TaroGeneral.CallbackResult>;
153
154
  declare const getBatteryInfo: typeof Taro.getBatteryInfo;
154
155
  // 蓝牙-通用
package/dist/index.cjs.js CHANGED
@@ -12,6 +12,7 @@ var navigate = require('@tarojs/router/dist/utils/navigate');
12
12
  var queryString = require('query-string');
13
13
  var components = require('@tarojs/components/dist/components');
14
14
  require('whatwg-fetch');
15
+ require('abortcontroller-polyfill/dist/abortcontroller-polyfill-only');
15
16
  var jsonpRetry = require('jsonp-retry');
16
17
 
17
18
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -1265,7 +1266,8 @@ const offAccelerometerChange = callback => {
1265
1266
  const checkIsOpenAccessibility = temporarilyNotSupport('checkIsOpenAccessibility');
1266
1267
 
1267
1268
  // 电量
1268
- const getBatteryInfoSync = temporarilyNotSupport('getBatteryInfoSync');
1269
+ // Note: 浏览器标准下不支持,其他实现方案不准确,不建议开发者使用
1270
+ const getBatteryInfoSync = permanentlyNotSupport('getBatteryInfoSync');
1269
1271
  const getBatteryInfo = ({ success, fail, complete } = {}) => __awaiter(void 0, void 0, void 0, function* () {
1270
1272
  var _a;
1271
1273
  const handle = new MethodHandler({ name: 'getBatteryInfo', success, fail, complete });
@@ -2934,12 +2936,24 @@ function _request(options) {
2934
2936
  if (options.mode) {
2935
2937
  params.mode = options.mode;
2936
2938
  }
2939
+ let timeoutTimer = null;
2937
2940
  if (options.signal) {
2938
2941
  params.signal = options.signal;
2939
2942
  }
2943
+ else if (typeof options.timeout === 'number') {
2944
+ const controller = new window.AbortController();
2945
+ params.signal = controller.signal;
2946
+ timeoutTimer = setTimeout(function () {
2947
+ controller.abort();
2948
+ }, options.timeout);
2949
+ }
2940
2950
  params.credentials = options.credentials;
2941
2951
  return fetch(url, params)
2942
2952
  .then(response => {
2953
+ if (timeoutTimer) {
2954
+ clearTimeout(timeoutTimer);
2955
+ timeoutTimer = null;
2956
+ }
2943
2957
  if (!response) {
2944
2958
  const errorResponse = { ok: false };
2945
2959
  throw errorResponse;
@@ -2971,6 +2985,10 @@ function _request(options) {
2971
2985
  return res;
2972
2986
  })
2973
2987
  .catch(err => {
2988
+ if (timeoutTimer) {
2989
+ clearTimeout(timeoutTimer);
2990
+ timeoutTimer = null;
2991
+ }
2974
2992
  shared.isFunction(fail) && fail(err);
2975
2993
  shared.isFunction(complete) && complete(res);
2976
2994
  err.statusCode = res.statusCode;