@tarojs/taro-h5 3.7.0-alpha.7 → 3.7.0-beta.1

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.
@@ -37,25 +37,25 @@ declare class InnerAudioContext implements Taro.InnerAudioContext {
37
37
  * @TODO destroy得并不干净
38
38
  */
39
39
  destroy: () => void;
40
- onCanplay: (callback?: () => void) => void | undefined;
41
- onPlay: (callback?: () => void) => void | undefined;
42
- onPause: (callback?: () => void) => void | undefined;
43
- onStop: (callback?: () => void) => void;
44
- onEnded: (callback?: () => void) => void | undefined;
45
- onTimeUpdate: (callback?: () => void) => void | undefined;
46
- onError: (callback?: ((res: Taro.InnerAudioContext.onErrorDetail) => void) | undefined) => void;
47
- onWaiting: (callback?: () => void) => void | undefined;
48
- onSeeking: (callback?: () => void) => void | undefined;
49
- onSeeked: (callback?: () => void) => void | undefined;
50
- offCanplay: (callback?: () => void) => void | undefined;
51
- offPlay: (callback?: () => void) => void | undefined;
52
- offPause: (callback?: () => void) => void | undefined;
53
- offStop: (callback?: () => void) => void;
54
- offEnded: (callback?: () => void) => void | undefined;
55
- offTimeUpdate: (callback?: () => void) => void | undefined;
56
- offError: (callback?: () => void) => void;
57
- offWaiting: (callback?: () => void) => void | undefined;
58
- offSeeking: (callback?: () => void) => void | undefined;
59
- offSeeked: (callback?: () => void) => void | undefined;
40
+ onCanplay: (callback?: Taro.InnerAudioContext.OnCanplayCallback) => void | undefined;
41
+ onPlay: (callback?: Taro.InnerAudioContext.OnPlayCallback) => void | undefined;
42
+ onPause: (callback?: Taro.InnerAudioContext.OnPauseCallback) => void | undefined;
43
+ onStop: (callback?: Taro.InnerAudioContext.OnStopCallback) => void;
44
+ onEnded: (callback?: Taro.InnerAudioContext.OnEndedCallback) => void | undefined;
45
+ onTimeUpdate: (callback?: Taro.InnerAudioContext.OnTimeUpdateCallback) => void | undefined;
46
+ onError: (callback: Taro.InnerAudioContext.OnErrorCallback) => void;
47
+ onWaiting: (callback?: Taro.InnerAudioContext.OnWaitingCallback) => void | undefined;
48
+ onSeeking: (callback?: Taro.InnerAudioContext.OnSeekingCallback) => void | undefined;
49
+ onSeeked: (callback?: Taro.InnerAudioContext.OnSeekedCallback) => void | undefined;
50
+ offCanplay: (callback?: Taro.InnerAudioContext.OnCanplayCallback) => void | undefined;
51
+ offPlay: (callback?: Taro.InnerAudioContext.OnPlayCallback) => void | undefined;
52
+ offPause: (callback?: Taro.InnerAudioContext.OnPauseCallback) => void | undefined;
53
+ offStop: (callback?: Taro.InnerAudioContext.OnStopCallback) => void;
54
+ offEnded: (callback?: Taro.InnerAudioContext.OnEndedCallback) => void | undefined;
55
+ offTimeUpdate: (callback?: Taro.InnerAudioContext.OnTimeUpdateCallback) => void | undefined;
56
+ offError: (callback?: Taro.InnerAudioContext.OnErrorCallback) => void;
57
+ offWaiting: (callback?: Taro.InnerAudioContext.OnWaitingCallback) => void | undefined;
58
+ offSeeking: (callback?: Taro.InnerAudioContext.OnSeekingCallback) => void | undefined;
59
+ offSeeked: (callback?: Taro.InnerAudioContext.OnSeekedCallback) => void | undefined;
60
60
  }
61
61
  export { InnerAudioContext };
@@ -24,7 +24,6 @@ class InnerAudioContext {
24
24
  this.destroy = () => {
25
25
  this.stop();
26
26
  if (this.Instance) {
27
- document.body.removeChild(this.Instance);
28
27
  this.Instance = undefined;
29
28
  }
30
29
  };
@@ -51,6 +50,7 @@ class InnerAudioContext {
51
50
  this.Instance = new Audio();
52
51
  this.errorStack = new CallbackManager();
53
52
  this.stopStack = new CallbackManager();
53
+ this.Instance.onerror = this.errorStack.trigger;
54
54
  Taro.eventCenter.on('__taroRouterChange', () => { this.stop(); });
55
55
  this.onPlay(() => {
56
56
  if (this.__isFirstPlay) {
@@ -1 +1 @@
1
- {"version":3,"file":"InnerAudioContext.js","sources":["../../../../src/api/media/audio/InnerAudioContext.ts"],"sourcesContent":["import Taro from '@tarojs/api'\n\nimport { permanentlyNotSupport } from '../../../utils'\nimport { CallbackManager } from '../../../utils/handler'\n\nexport class InnerAudioContext implements Taro.InnerAudioContext {\n Instance?: HTMLAudioElement\n errorStack: CallbackManager\n stopStack: CallbackManager\n __startTime = 0\n __isFirstPlay = true\n\n constructor () {\n this.Instance = new Audio()\n this.errorStack = new CallbackManager()\n this.stopStack = new CallbackManager()\n\n Taro.eventCenter.on('__taroRouterChange', () => { this.stop() })\n this.onPlay(() => {\n if (this.__isFirstPlay) {\n this.__isFirstPlay = false\n this.seek(this.startTime)\n }\n })\n }\n\n set autoplay (e) { this.setProperty('autoplay', e) }\n get autoplay () { return this.Instance?.autoplay || false }\n get buffered () { return this.Instance?.buffered.length || 0 }\n get currentTime () { return this.Instance?.currentTime || 0 }\n set currentTime (e) { this.seek(e) }\n get duration () { return this.Instance?.duration || 0 }\n set loop (e) { this.setProperty('loop', e) }\n get loop () { return this.Instance?.loop || false }\n get paused () { return this.Instance?.paused ?? true }\n set src (e) { this.setProperty('src', e) }\n get src () { return this.Instance?.src || '' }\n set volume (e) { this.setProperty('volume', e) }\n get volume () { return this.Instance?.volume || 0 }\n set playbackRate (e) { this.setProperty('playbackRate', e) }\n get playbackRate () { return this.Instance?.playbackRate || 0 }\n set obeyMuteSwitch (_e) { permanentlyNotSupport('InnerAudioContext.obeyMuteSwitch')() }\n get obeyMuteSwitch () { return true }\n set startTime (e) { this.__startTime = e }\n get startTime () { return this.__startTime || 0 }\n set referrerPolicy (e) { this.Instance?.setAttribute('referrerpolicy', e) }\n get referrerPolicy () { return this.Instance?.getAttribute('referrerpolicy') || 'origin' }\n\n private setProperty (key: string, value: unknown) {\n if (this.Instance) {\n this.Instance[key] = value\n }\n }\n\n play = () => this.Instance?.play()\n\n pause = () => this.Instance?.pause()\n\n stop = () => {\n this.pause()\n this.seek(0)\n this.stopStack.trigger()\n }\n\n seek = (position: number) => {\n if (this.Instance) {\n this.Instance.currentTime = position\n }\n }\n\n /**\n * @TODO destroy得并不干净\n */\n destroy = () => {\n this.stop()\n if (this.Instance) {\n document.body.removeChild(this.Instance)\n this.Instance = undefined\n }\n }\n\n onCanplay = (callback = () => {}) => this.Instance?.addEventListener('canplay', callback)\n onPlay = (callback = () => {}) => this.Instance?.addEventListener('play', callback)\n onPause = (callback = () => {}) => this.Instance?.addEventListener('pause', callback)\n onStop = (callback = () => {}) => this.stopStack.add(callback)\n onEnded = (callback = () => {}) => this.Instance?.addEventListener('ended', callback)\n onTimeUpdate = (callback = () => {}) => this.Instance?.addEventListener('timeupdate', callback)\n onError = (callback?: ((res: Taro.InnerAudioContext.onErrorDetail) => void)) => this.errorStack.add(callback)\n onWaiting = (callback = () => {}) => this.Instance?.addEventListener('waiting', callback)\n onSeeking = (callback = () => {}) => this.Instance?.addEventListener('seeking', callback)\n onSeeked = (callback = () => {}) => this.Instance?.addEventListener('seeked', callback)\n offCanplay = (callback = () => {}) => this.Instance?.removeEventListener('canplay', callback)\n offPlay = (callback = () => {}) => this.Instance?.removeEventListener('play', callback)\n offPause = (callback = () => {}) => this.Instance?.removeEventListener('pause', callback)\n offStop = (callback = () => {}) => this.stopStack.remove(callback)\n offEnded = (callback = () => {}) => this.Instance?.removeEventListener('ended', callback)\n offTimeUpdate = (callback = () => {}) => this.Instance?.removeEventListener('timeupdate', callback)\n offError = (callback = () => {}) => this.errorStack.remove(callback)\n offWaiting = (callback = () => {}) => this.Instance?.removeEventListener('waiting', callback)\n offSeeking = (callback = () => {}) => this.Instance?.removeEventListener('seeking', callback)\n offSeeked = (callback = () => {}) => this.Instance?.removeEventListener('seeked', callback)\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InnerAudioContext.js","sources":["../../../../src/api/media/audio/InnerAudioContext.ts"],"sourcesContent":["import Taro from '@tarojs/api'\n\nimport { permanentlyNotSupport } from '../../../utils'\nimport { CallbackManager } from '../../../utils/handler'\n\nexport class InnerAudioContext implements Taro.InnerAudioContext {\n Instance?: HTMLAudioElement\n errorStack: CallbackManager\n stopStack: CallbackManager\n __startTime = 0\n __isFirstPlay = true\n\n constructor () {\n this.Instance = new Audio()\n this.errorStack = new CallbackManager()\n this.stopStack = new CallbackManager()\n this.Instance.onerror = this.errorStack.trigger\n\n Taro.eventCenter.on('__taroRouterChange', () => { this.stop() })\n this.onPlay(() => {\n if (this.__isFirstPlay) {\n this.__isFirstPlay = false\n this.seek(this.startTime)\n }\n })\n }\n\n set autoplay (e) { this.setProperty('autoplay', e) }\n get autoplay () { return this.Instance?.autoplay || false }\n get buffered () { return this.Instance?.buffered.length || 0 }\n get currentTime () { return this.Instance?.currentTime || 0 }\n set currentTime (e) { this.seek(e) }\n get duration () { return this.Instance?.duration || 0 }\n set loop (e) { this.setProperty('loop', e) }\n get loop () { return this.Instance?.loop || false }\n get paused () { return this.Instance?.paused ?? true }\n set src (e) { this.setProperty('src', e) }\n get src () { return this.Instance?.src || '' }\n set volume (e) { this.setProperty('volume', e) }\n get volume () { return this.Instance?.volume || 0 }\n set playbackRate (e) { this.setProperty('playbackRate', e) }\n get playbackRate () { return this.Instance?.playbackRate || 0 }\n set obeyMuteSwitch (_e) { permanentlyNotSupport('InnerAudioContext.obeyMuteSwitch')() }\n get obeyMuteSwitch () { return true }\n set startTime (e) { this.__startTime = e }\n get startTime () { return this.__startTime || 0 }\n set referrerPolicy (e) { this.Instance?.setAttribute('referrerpolicy', e) }\n get referrerPolicy () { return this.Instance?.getAttribute('referrerpolicy') || 'origin' }\n\n private setProperty (key: string, value: unknown) {\n if (this.Instance) {\n this.Instance[key] = value\n }\n }\n\n play = () => this.Instance?.play()\n\n pause = () => this.Instance?.pause()\n\n stop = () => {\n this.pause()\n this.seek(0)\n this.stopStack.trigger()\n }\n\n seek = (position: number) => {\n if (this.Instance) {\n this.Instance.currentTime = position\n }\n }\n\n /**\n * @TODO destroy得并不干净\n */\n destroy = () => {\n this.stop()\n if (this.Instance) {\n this.Instance = undefined\n }\n }\n\n onCanplay = (callback: Taro.InnerAudioContext.OnCanplayCallback = () => {}) => this.Instance?.addEventListener('canplay', callback as any)\n onPlay = (callback: Taro.InnerAudioContext.OnPlayCallback = () => {}) => this.Instance?.addEventListener('play', callback as any)\n onPause = (callback: Taro.InnerAudioContext.OnPauseCallback = () => {}) => this.Instance?.addEventListener('pause', callback as any)\n onStop = (callback: Taro.InnerAudioContext.OnStopCallback = () => {}) => this.stopStack.add(callback)\n onEnded = (callback: Taro.InnerAudioContext.OnEndedCallback = () => {}) => this.Instance?.addEventListener('ended', callback as any)\n onTimeUpdate = (callback: Taro.InnerAudioContext.OnTimeUpdateCallback = () => {}) => this.Instance?.addEventListener('timeupdate', callback as any)\n onError = (callback: Taro.InnerAudioContext.OnErrorCallback) => this.errorStack.add(callback)\n onWaiting = (callback: Taro.InnerAudioContext.OnWaitingCallback = () => {}) => this.Instance?.addEventListener('waiting', callback as any)\n onSeeking = (callback: Taro.InnerAudioContext.OnSeekingCallback = () => {}) => this.Instance?.addEventListener('seeking', callback as any)\n onSeeked = (callback: Taro.InnerAudioContext.OnSeekedCallback = () => {}) => this.Instance?.addEventListener('seeked', callback as any)\n offCanplay = (callback: Taro.InnerAudioContext.OnCanplayCallback = () => {}) => this.Instance?.removeEventListener('canplay', callback as any)\n offPlay = (callback: Taro.InnerAudioContext.OnPlayCallback = () => {}) => this.Instance?.removeEventListener('play', callback as any)\n offPause = (callback: Taro.InnerAudioContext.OnPauseCallback = () => {}) => this.Instance?.removeEventListener('pause', callback as any)\n offStop = (callback: Taro.InnerAudioContext.OnStopCallback = () => {}) => this.stopStack.remove(callback)\n offEnded = (callback: Taro.InnerAudioContext.OnEndedCallback = () => {}) => this.Instance?.removeEventListener('ended', callback as any)\n offTimeUpdate = (callback: Taro.InnerAudioContext.OnTimeUpdateCallback = () => {}) => this.Instance?.removeEventListener('timeupdate', callback as any)\n offError = (callback: Taro.InnerAudioContext.OnErrorCallback = () => {}) => this.errorStack.remove(callback)\n offWaiting = (callback: Taro.InnerAudioContext.OnWaitingCallback = () => {}) => this.Instance?.removeEventListener('waiting', callback as any)\n offSeeking = (callback: Taro.InnerAudioContext.OnSeekingCallback = () => {}) => this.Instance?.removeEventListener('seeking', callback as any)\n offSeeked = (callback: Taro.InnerAudioContext.OnSeekedCallback = () => {}) => this.Instance?.removeEventListener('seeked', callback as any)\n}\n"],"names":[],"mappings":"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"}
@@ -43,6 +43,7 @@ class BackgroundAudioManager {
43
43
  this.Instance = new Audio();
44
44
  this.errorStack = new CallbackManager();
45
45
  this.stopStack = new CallbackManager();
46
+ this.Instance.onerror = this.errorStack.trigger;
46
47
  this.Instance.autoplay = true;
47
48
  this.onPlay(() => {
48
49
  if (this.currentTime !== this.startTime) {
@@ -1 +1 @@
1
- {"version":3,"file":"BackgroundAudioManager.js","sources":["../../../../src/api/media/background-audio/BackgroundAudioManager.ts"],"sourcesContent":["import Taro from '@tarojs/api'\n\nimport { permanentlyNotSupport } from '../../../utils'\nimport { CallbackManager } from '../../../utils/handler'\n\nexport class BackgroundAudioManager implements Taro.BackgroundAudioManager {\n Instance?: HTMLAudioElement\n errorStack: CallbackManager\n stopStack: CallbackManager\n __startTime = 0\n\n constructor () {\n this.Instance = new Audio()\n this.errorStack = new CallbackManager()\n this.stopStack = new CallbackManager()\n this.Instance.autoplay = true\n this.onPlay(() => {\n if (this.currentTime !== this.startTime) {\n this.seek(this.startTime)\n }\n })\n }\n\n set src (e) { this.setProperty('src', e) }\n get src () { return this.Instance?.src || '' }\n set startTime (e) { this.__startTime = e }\n get startTime () { return this.__startTime || 0 }\n set title (e) { this.dataset('title', e) }\n get title () { return this.Instance?.dataset.title || '' }\n set epname (e) { this.dataset('epname', e) }\n get epname () { return this.Instance?.dataset.epname || '' }\n set singer (e) { this.dataset('singer', e) }\n get singer () { return this.Instance?.dataset.singer || '' }\n set coverImgUrl (e) { this.dataset('coverImgUrl', e) }\n get coverImgUrl () { return this.Instance?.dataset.coverImgUrl || '' }\n set webUrl (e) { this.dataset('webUrl', e) }\n get webUrl () { return this.Instance?.dataset.webUrl || '' }\n set protocol (e) { this.dataset('protocol', e) }\n get protocol () { return this.Instance?.dataset.protocol || '' }\n set playbackRate (e) { this.setProperty('playbackRate', e) }\n get playbackRate () { return this.Instance?.playbackRate || 0 }\n get duration () { return this.Instance?.duration || 0 }\n get currentTime () { return this.Instance?.currentTime || 0 }\n get paused () { return this.Instance?.paused || false }\n get buffered () { return this.Instance?.buffered.length || 0 }\n set referrerPolicy (e) { this.Instance?.setAttribute('referrerpolicy', e) }\n get referrerPolicy () { return this.Instance?.getAttribute('referrerpolicy') || 'origin' }\n\n private setProperty (key: string, value: unknown) {\n if (this.Instance) {\n this.Instance[key] = value\n }\n }\n\n private dataset (key: string, value: string) {\n if (this.Instance) {\n this.Instance.dataset[key] = value\n }\n }\n\n play = () => this.Instance?.play()\n\n pause = () => this.Instance?.pause()\n\n seek = (position: number) => {\n if (this.Instance) {\n this.Instance.currentTime = position\n }\n }\n\n stop = () => {\n this.pause()\n this.seek(0)\n this.stopStack.trigger()\n }\n\n onCanplay = (callback = () => {}) => this.Instance?.addEventListener('canplay', callback)\n onWaiting = (callback = () => {}) => this.Instance?.addEventListener('waiting', callback)\n onError = (callback?: ((res: Taro.InnerAudioContext.onErrorDetail) => void)) => this.errorStack.add(callback)\n onPlay = (callback = () => {}) => this.Instance?.addEventListener('play', callback)\n onPause = (callback = () => {}) => this.Instance?.addEventListener('pause', callback)\n onSeeking = (callback = () => {}) => this.Instance?.addEventListener('seeking', callback)\n onSeeked = (callback = () => {}) => this.Instance?.addEventListener('seeked', callback)\n\n onEnded = (callback = () => {}) => this.Instance?.addEventListener('ended', callback)\n onStop = (callback = () => {}) => this.stopStack.add(callback)\n onTimeUpdate = (callback = () => {}) => this.Instance?.addEventListener('timeupdate', callback)\n onPrev = permanentlyNotSupport('BackgroundAudioManager.onPrev')\n onNext = permanentlyNotSupport('BackgroundAudioManager.onNext')\n\n offCanplay = (callback = () => {}) => this.Instance?.removeEventListener('canplay', callback)\n offWaiting = (callback = () => {}) => this.Instance?.removeEventListener('waiting', callback)\n offError = (callback = () => {}) => this.errorStack.remove(callback)\n offPlay = (callback = () => {}) => this.Instance?.removeEventListener('play', callback)\n offPause = (callback = () => {}) => this.Instance?.removeEventListener('pause', callback)\n offSeeking = (callback = () => {}) => this.Instance?.removeEventListener('seeking', callback)\n offSeeked = (callback = () => {}) => this.Instance?.removeEventListener('seeked', callback)\n\n offEnded = (callback = () => {}) => this.Instance?.removeEventListener('ended', callback)\n offStop = (callback = () => {}) => this.stopStack.remove(callback)\n offTimeUpdate = (callback = () => {}) => this.Instance?.removeEventListener('timeupdate', callback)\n offPrev = permanentlyNotSupport('BackgroundAudioManager.offPrev')\n offNext = permanentlyNotSupport('BackgroundAudioManager.offNext')\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BackgroundAudioManager.js","sources":["../../../../src/api/media/background-audio/BackgroundAudioManager.ts"],"sourcesContent":["import Taro from '@tarojs/api'\n\nimport { permanentlyNotSupport } from '../../../utils'\nimport { CallbackManager } from '../../../utils/handler'\n\nexport class BackgroundAudioManager implements Taro.BackgroundAudioManager {\n Instance?: HTMLAudioElement\n errorStack: CallbackManager\n stopStack: CallbackManager\n __startTime = 0\n\n constructor () {\n this.Instance = new Audio()\n this.errorStack = new CallbackManager()\n this.stopStack = new CallbackManager()\n this.Instance.onerror = this.errorStack.trigger\n this.Instance.autoplay = true\n this.onPlay(() => {\n if (this.currentTime !== this.startTime) {\n this.seek(this.startTime)\n }\n })\n }\n\n set src (e) { this.setProperty('src', e) }\n get src () { return this.Instance?.src || '' }\n set startTime (e) { this.__startTime = e }\n get startTime () { return this.__startTime || 0 }\n set title (e) { this.dataset('title', e) }\n get title () { return this.Instance?.dataset.title || '' }\n set epname (e) { this.dataset('epname', e) }\n get epname () { return this.Instance?.dataset.epname || '' }\n set singer (e) { this.dataset('singer', e) }\n get singer () { return this.Instance?.dataset.singer || '' }\n set coverImgUrl (e) { this.dataset('coverImgUrl', e) }\n get coverImgUrl () { return this.Instance?.dataset.coverImgUrl || '' }\n set webUrl (e) { this.dataset('webUrl', e) }\n get webUrl () { return this.Instance?.dataset.webUrl || '' }\n set protocol (e) { this.dataset('protocol', e) }\n get protocol () { return this.Instance?.dataset.protocol || '' }\n set playbackRate (e) { this.setProperty('playbackRate', e) }\n get playbackRate () { return this.Instance?.playbackRate || 0 }\n get duration () { return this.Instance?.duration || 0 }\n get currentTime () { return this.Instance?.currentTime || 0 }\n get paused () { return this.Instance?.paused || false }\n get buffered () { return this.Instance?.buffered.length || 0 }\n set referrerPolicy (e) { this.Instance?.setAttribute('referrerpolicy', e) }\n get referrerPolicy () { return this.Instance?.getAttribute('referrerpolicy') || 'origin' }\n\n private setProperty (key: string, value: unknown) {\n if (this.Instance) {\n this.Instance[key] = value\n }\n }\n\n private dataset (key: string, value: string) {\n if (this.Instance) {\n this.Instance.dataset[key] = value\n }\n }\n\n play = () => this.Instance?.play()\n\n pause = () => this.Instance?.pause()\n\n seek = (position: number) => {\n if (this.Instance) {\n this.Instance.currentTime = position\n }\n }\n\n stop = () => {\n this.pause()\n this.seek(0)\n this.stopStack.trigger()\n }\n\n onCanplay = (callback = () => {}) => this.Instance?.addEventListener('canplay', callback)\n onWaiting = (callback = () => {}) => this.Instance?.addEventListener('waiting', callback)\n onError = (callback?: ((res: Taro.InnerAudioContext.onErrorDetail) => void)) => this.errorStack.add(callback)\n onPlay = (callback = () => {}) => this.Instance?.addEventListener('play', callback)\n onPause = (callback = () => {}) => this.Instance?.addEventListener('pause', callback)\n onSeeking = (callback = () => {}) => this.Instance?.addEventListener('seeking', callback)\n onSeeked = (callback = () => {}) => this.Instance?.addEventListener('seeked', callback)\n\n onEnded = (callback = () => {}) => this.Instance?.addEventListener('ended', callback)\n onStop = (callback = () => {}) => this.stopStack.add(callback)\n onTimeUpdate = (callback = () => {}) => this.Instance?.addEventListener('timeupdate', callback)\n onPrev = permanentlyNotSupport('BackgroundAudioManager.onPrev')\n onNext = permanentlyNotSupport('BackgroundAudioManager.onNext')\n\n offCanplay = (callback = () => {}) => this.Instance?.removeEventListener('canplay', callback)\n offWaiting = (callback = () => {}) => this.Instance?.removeEventListener('waiting', callback)\n offError = (callback = () => {}) => this.errorStack.remove(callback)\n offPlay = (callback = () => {}) => this.Instance?.removeEventListener('play', callback)\n offPause = (callback = () => {}) => this.Instance?.removeEventListener('pause', callback)\n offSeeking = (callback = () => {}) => this.Instance?.removeEventListener('seeking', callback)\n offSeeked = (callback = () => {}) => this.Instance?.removeEventListener('seeked', callback)\n\n offEnded = (callback = () => {}) => this.Instance?.removeEventListener('ended', callback)\n offStop = (callback = () => {}) => this.stopStack.remove(callback)\n offTimeUpdate = (callback = () => {}) => this.Instance?.removeEventListener('timeupdate', callback)\n offPrev = permanentlyNotSupport('BackgroundAudioManager.offPrev')\n offNext = permanentlyNotSupport('BackgroundAudioManager.offNext')\n}\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { __awaiter } from '../../../node_modules/.pnpm/registry.npmjs.org_tslib@2.5.0/node_modules/tslib/tslib.es6.js';
2
2
  import { defineCustomElementTaroSwiperCore, defineCustomElementTaroSwiperItemCore } from '@tarojs/components/dist/components';
3
+ import { eventCenter } from '@tarojs/runtime';
3
4
  import { isFunction } from '@tarojs/shared';
4
5
  import { shouldBeObject } from '../../../utils/index.js';
5
6
  import { MethodHandler } from '../../../utils/handler.js';
@@ -45,12 +46,16 @@ const previewImage = (options) => __awaiter(void 0, void 0, void 0, function* ()
45
46
  const { urls = [], current = '', success, fail, complete } = options;
46
47
  const handle = new MethodHandler({ name: 'previewImage', success, fail, complete });
47
48
  const container = document.createElement('div');
49
+ const removeHandler = () => {
50
+ eventCenter.off('__taroRouterChange', removeHandler);
51
+ container.remove();
52
+ };
53
+ // 路由改变后应该关闭预览框
54
+ eventCenter.on('__taroRouterChange', removeHandler);
48
55
  container.classList.add('preview-image');
49
56
  container.style.cssText =
50
57
  'position:fixed;top:0;left:0;z-index:1050;width:100%;height:100%;overflow:hidden;outline:0;background-color:#111;';
51
- container.addEventListener('click', () => {
52
- container.remove();
53
- });
58
+ container.addEventListener('click', removeHandler);
54
59
  const swiper = document.createElement('taro-swiper-core');
55
60
  // @ts-ignore
56
61
  swiper.full = true;
@@ -1 +1 @@
1
- {"version":3,"file":"previewImage.js","sources":["../../../../src/api/media/image/previewImage.ts"],"sourcesContent":["import Taro from '@tarojs/api'\nimport { SwiperProps } from '@tarojs/components'\nimport {\n defineCustomElementTaroSwiperCore,\n defineCustomElementTaroSwiperItemCore,\n} from '@tarojs/components/dist/components'\nimport { isFunction } from '@tarojs/shared'\n\nimport { shouldBeObject } from '../../../utils'\nimport { MethodHandler } from '../../../utils/handler'\n\n/**\n * previewImage api基于开源的React组件[react-wx-images-viewer](https://github.com/react-ld/react-wx-images-viewer)开发,感谢!\n */\n\n/**\n * 在新页面中全屏预览图片。预览的过程中用户可以进行保存图片、发送给朋友等操作。\n */\nexport const previewImage: typeof Taro.previewImage = async (options) => {\n // TODO 改为通过 window.__taroAppConfig 获取配置的 Swiper 插件创建节点\n defineCustomElementTaroSwiperCore()\n defineCustomElementTaroSwiperItemCore()\n\n function loadImage (url: string, loadFail: typeof fail): Promise<Node> {\n return new Promise((resolve) => {\n const item = document.createElement('taro-swiper-item-core')\n item.style.cssText = 'display:flex;align-items:start;justify-content:center;overflow-y:scroll;'\n const image = new Image()\n image.style.maxWidth = '100%'\n image.src = url\n const div = document.createElement('div')\n div.classList.add('swiper-zoom-container')\n div.style.cssText = 'display:flex;align-items:center;justify-content:center;max-width:100%;min-height:100%;'\n div.appendChild(image)\n item.appendChild(div)\n // Note: 等待图片加载完后返回,会导致轮播被卡住\n resolve(item)\n if (isFunction(loadFail)) {\n image.addEventListener('error', (err) => {\n loadFail({ errMsg: err.message })\n })\n }\n })\n }\n\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `previewImage:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const { urls = [], current = '', success, fail, complete } = options\n const handle = new MethodHandler({ name: 'previewImage', success, fail, complete })\n const container = document.createElement('div')\n container.classList.add('preview-image')\n container.style.cssText =\n 'position:fixed;top:0;left:0;z-index:1050;width:100%;height:100%;overflow:hidden;outline:0;background-color:#111;'\n container.addEventListener('click', () => {\n container.remove()\n })\n\n const swiper: HTMLElement & Omit<SwiperProps, 'style' | 'children'> = document.createElement('taro-swiper-core')\n // @ts-ignore\n swiper.full = true\n // @ts-ignore\n swiper.zoom = true\n\n let children: Node[] = []\n try {\n children = await Promise.all(urls.map((e) => loadImage(e, fail)))\n } catch (error) {\n return handle.fail({\n errMsg: error,\n })\n }\n\n for (let i = 0; i < children.length; i++) {\n const child = children[i]\n swiper.appendChild(child)\n }\n\n const currentIndex = typeof current === 'number' ? current : urls.indexOf(current)\n\n swiper.current = currentIndex\n\n container.appendChild(swiper)\n document.body.appendChild(container)\n\n return handle.success()\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"previewImage.js","sources":["../../../../src/api/media/image/previewImage.ts"],"sourcesContent":["import Taro from '@tarojs/api'\nimport { SwiperProps } from '@tarojs/components'\nimport {\n defineCustomElementTaroSwiperCore,\n defineCustomElementTaroSwiperItemCore,\n} from '@tarojs/components/dist/components'\nimport { eventCenter } from '@tarojs/runtime'\nimport { isFunction } from '@tarojs/shared'\n\nimport { shouldBeObject } from '../../../utils'\nimport { MethodHandler } from '../../../utils/handler'\n\n/**\n * previewImage api基于开源的React组件[react-wx-images-viewer](https://github.com/react-ld/react-wx-images-viewer)开发,感谢!\n */\n\n/**\n * 在新页面中全屏预览图片。预览的过程中用户可以进行保存图片、发送给朋友等操作。\n */\nexport const previewImage: typeof Taro.previewImage = async (options) => {\n // TODO 改为通过 window.__taroAppConfig 获取配置的 Swiper 插件创建节点\n defineCustomElementTaroSwiperCore()\n defineCustomElementTaroSwiperItemCore()\n\n function loadImage (url: string, loadFail: typeof fail): Promise<Node> {\n return new Promise((resolve) => {\n const item = document.createElement('taro-swiper-item-core')\n item.style.cssText = 'display:flex;align-items:start;justify-content:center;overflow-y:scroll;'\n const image = new Image()\n image.style.maxWidth = '100%'\n image.src = url\n const div = document.createElement('div')\n div.classList.add('swiper-zoom-container')\n div.style.cssText = 'display:flex;align-items:center;justify-content:center;max-width:100%;min-height:100%;'\n div.appendChild(image)\n item.appendChild(div)\n // Note: 等待图片加载完后返回,会导致轮播被卡住\n resolve(item)\n if (isFunction(loadFail)) {\n image.addEventListener('error', (err) => {\n loadFail({ errMsg: err.message })\n })\n }\n })\n }\n\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `previewImage:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const { urls = [], current = '', success, fail, complete } = options\n const handle = new MethodHandler({ name: 'previewImage', success, fail, complete })\n const container = document.createElement('div')\n const removeHandler = () => {\n eventCenter.off('__taroRouterChange', removeHandler)\n container.remove()\n }\n // 路由改变后应该关闭预览框\n eventCenter.on('__taroRouterChange', removeHandler)\n\n container.classList.add('preview-image')\n container.style.cssText =\n 'position:fixed;top:0;left:0;z-index:1050;width:100%;height:100%;overflow:hidden;outline:0;background-color:#111;'\n container.addEventListener('click', removeHandler)\n\n const swiper: HTMLElement & Omit<SwiperProps, 'style' | 'children'> = document.createElement('taro-swiper-core')\n // @ts-ignore\n swiper.full = true\n // @ts-ignore\n swiper.zoom = true\n\n let children: Node[] = []\n try {\n children = await Promise.all(urls.map((e) => loadImage(e, fail)))\n } catch (error) {\n return handle.fail({\n errMsg: error,\n })\n }\n\n for (let i = 0; i < children.length; i++) {\n const child = children[i]\n swiper.appendChild(child)\n }\n\n const currentIndex = typeof current === 'number' ? current : urls.indexOf(current)\n\n swiper.current = currentIndex\n\n container.appendChild(swiper)\n document.body.appendChild(container)\n\n return handle.success()\n}\n"],"names":[],"mappings":"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"}
@@ -121,15 +121,17 @@ const downloadFile = ({ url, header, withCredentials, timeout, success, fail, co
121
121
  }
122
122
  });
123
123
  });
124
- result.headersReceive = task.onHeadersReceived;
125
- result.progress = task.onProgressUpdate;
126
- return new Proxy(result, {
127
- get(target, prop) {
128
- const object = prop in task ? task : target;
129
- const value = object[prop];
130
- return typeof value === 'function' ? value.bind(object) : value;
131
- },
124
+ result.headersReceive = task.onHeadersReceived.bind(task);
125
+ result.progress = task.onProgressUpdate.bind(task);
126
+ const properties = {};
127
+ Object.keys(task).forEach(key => {
128
+ properties[key] = {
129
+ get() {
130
+ return typeof task[key] === 'function' ? task[key].bind(task) : task[key];
131
+ }
132
+ };
132
133
  });
134
+ return Object.defineProperties(result, properties);
133
135
  };
134
136
 
135
137
  export { downloadFile };
@@ -1 +1 @@
1
- {"version":3,"file":"download.js","sources":["../../../src/api/network/download.ts"],"sourcesContent":["import Taro from '@tarojs/api'\r\n\r\nimport { CallbackManager } from '../../utils/handler'\r\nimport { NETWORK_TIMEOUT, setHeader, XHR_STATS } from './utils'\r\n\r\nconst createDownloadTask = ({ url, header, withCredentials = true, timeout, success, error }): Taro.DownloadTask => {\r\n let timeoutInter: ReturnType<typeof setTimeout>\r\n const apiName = 'downloadFile'\r\n const xhr = new XMLHttpRequest()\r\n const callbackManager = {\r\n headersReceived: new CallbackManager(),\r\n progressUpdate: new CallbackManager()\r\n }\r\n\r\n xhr.open('GET', url, true)\r\n xhr.withCredentials = !!withCredentials\r\n xhr.responseType = 'blob'\r\n setHeader(xhr, header)\r\n\r\n xhr.onprogress = e => {\r\n const { loaded, total } = e\r\n callbackManager.progressUpdate.trigger({\r\n progress: Math.round(loaded / total * 100),\r\n totalBytesWritten: loaded,\r\n totalBytesExpectedToWrite: total\r\n })\r\n }\r\n\r\n xhr.onreadystatechange = () => {\r\n if (xhr.readyState !== XHR_STATS.HEADERS_RECEIVED) return\r\n callbackManager.headersReceived.trigger({\r\n header: xhr.getAllResponseHeaders()\r\n })\r\n }\r\n\r\n xhr.onload = () => {\r\n const response = xhr.response\r\n const status = xhr.status\r\n success({\r\n errMsg: `${apiName}:ok`,\r\n statusCode: status,\r\n tempFilePath: window.URL.createObjectURL(response)\r\n })\r\n }\r\n\r\n xhr.onabort = () => {\r\n clearTimeout(timeoutInter)\r\n error({\r\n errMsg: `${apiName}:fail abort`\r\n })\r\n }\r\n\r\n xhr.onerror = (e: ProgressEvent<EventTarget> & { message?: string }) => {\r\n error({\r\n errMsg: `${apiName}:fail ${e.message}`\r\n })\r\n }\r\n\r\n /**\r\n * 中断任务\r\n */\r\n const abort = () => {\r\n xhr.abort()\r\n }\r\n\r\n const send = () => {\r\n xhr.send()\r\n timeoutInter = setTimeout(() => {\r\n xhr.onabort = null\r\n xhr.onload = null\r\n xhr.onprogress = null\r\n xhr.onreadystatechange = null\r\n xhr.onerror = null\r\n abort()\r\n error({\r\n errMsg: `${apiName}:fail timeout`\r\n })\r\n }, timeout || NETWORK_TIMEOUT)\r\n }\r\n\r\n send()\r\n\r\n /**\r\n * 监听 HTTP Response Header 事件。会比请求完成事件更早\r\n * @param {HeadersReceivedCallback} callback HTTP Response Header 事件的回调函数\r\n */\r\n const onHeadersReceived = callbackManager.headersReceived.add\r\n /**\r\n * 取消监听 HTTP Response Header 事件\r\n * @param {HeadersReceivedCallback} callback HTTP Response Header 事件的回调函数\r\n */\r\n const offHeadersReceived = callbackManager.headersReceived.remove\r\n\r\n /**\r\n * 监听进度变化事件\r\n * @param {ProgressUpdateCallback} callback HTTP Response Header 事件的回调函数\r\n */\r\n const onProgressUpdate = callbackManager.progressUpdate.add\r\n /**\r\n * 取消监听进度变化事件\r\n * @param {ProgressUpdateCallback} callback HTTP Response Header 事件的回调函数\r\n */\r\n const offProgressUpdate = callbackManager.progressUpdate.remove\r\n\r\n return {\r\n abort,\r\n onHeadersReceived,\r\n offHeadersReceived,\r\n onProgressUpdate,\r\n offProgressUpdate\r\n }\r\n}\r\n\r\n/**\r\n * 下载文件资源到本地。客户端直接发起一个 HTTPS GET 请求,返回文件的本地临时路径。使用前请注意阅读相关说明。\r\n * 注意:请在服务端响应的 header 中指定合理的 Content-Type 字段,以保证客户端正确处理文件类型。\r\n */\r\nexport const downloadFile: typeof Taro.downloadFile = ({ url, header, withCredentials, timeout, success, fail, complete }) => {\r\n let task!: Taro.DownloadTask\r\n const result: ReturnType<typeof Taro.downloadFile> = new Promise((resolve, reject) => {\r\n task = createDownloadTask({\r\n url,\r\n header,\r\n withCredentials,\r\n timeout,\r\n success: res => {\r\n success && success(res)\r\n complete && complete(res)\r\n resolve(res)\r\n },\r\n error: res => {\r\n fail && fail(res)\r\n complete && complete(res)\r\n reject(res)\r\n }\r\n })\r\n }) as any\r\n\r\n result.headersReceive = task.onHeadersReceived\r\n result.progress = task.onProgressUpdate\r\n\r\n return new Proxy(result, {\r\n get (target, prop) {\r\n const object = prop in task ? task : target\r\n const value = object[prop]\r\n return typeof value === 'function' ? value.bind(object) : value\r\n },\r\n })\r\n}\r\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"download.js","sources":["../../../src/api/network/download.ts"],"sourcesContent":["import Taro from '@tarojs/api'\r\n\r\nimport { CallbackManager } from '../../utils/handler'\r\nimport { NETWORK_TIMEOUT, setHeader, XHR_STATS } from './utils'\r\n\r\nconst createDownloadTask = ({ url, header, withCredentials = true, timeout, success, error }): Taro.DownloadTask => {\r\n let timeoutInter: ReturnType<typeof setTimeout>\r\n const apiName = 'downloadFile'\r\n const xhr = new XMLHttpRequest()\r\n const callbackManager = {\r\n headersReceived: new CallbackManager(),\r\n progressUpdate: new CallbackManager()\r\n }\r\n\r\n xhr.open('GET', url, true)\r\n xhr.withCredentials = !!withCredentials\r\n xhr.responseType = 'blob'\r\n setHeader(xhr, header)\r\n\r\n xhr.onprogress = e => {\r\n const { loaded, total } = e\r\n callbackManager.progressUpdate.trigger({\r\n progress: Math.round(loaded / total * 100),\r\n totalBytesWritten: loaded,\r\n totalBytesExpectedToWrite: total\r\n })\r\n }\r\n\r\n xhr.onreadystatechange = () => {\r\n if (xhr.readyState !== XHR_STATS.HEADERS_RECEIVED) return\r\n callbackManager.headersReceived.trigger({\r\n header: xhr.getAllResponseHeaders()\r\n })\r\n }\r\n\r\n xhr.onload = () => {\r\n const response = xhr.response\r\n const status = xhr.status\r\n success({\r\n errMsg: `${apiName}:ok`,\r\n statusCode: status,\r\n tempFilePath: window.URL.createObjectURL(response)\r\n })\r\n }\r\n\r\n xhr.onabort = () => {\r\n clearTimeout(timeoutInter)\r\n error({\r\n errMsg: `${apiName}:fail abort`\r\n })\r\n }\r\n\r\n xhr.onerror = (e: ProgressEvent<EventTarget> & { message?: string }) => {\r\n error({\r\n errMsg: `${apiName}:fail ${e.message}`\r\n })\r\n }\r\n\r\n /**\r\n * 中断任务\r\n */\r\n const abort = () => {\r\n xhr.abort()\r\n }\r\n\r\n const send = () => {\r\n xhr.send()\r\n timeoutInter = setTimeout(() => {\r\n xhr.onabort = null\r\n xhr.onload = null\r\n xhr.onprogress = null\r\n xhr.onreadystatechange = null\r\n xhr.onerror = null\r\n abort()\r\n error({\r\n errMsg: `${apiName}:fail timeout`\r\n })\r\n }, timeout || NETWORK_TIMEOUT)\r\n }\r\n\r\n send()\r\n\r\n /**\r\n * 监听 HTTP Response Header 事件。会比请求完成事件更早\r\n * @param {HeadersReceivedCallback} callback HTTP Response Header 事件的回调函数\r\n */\r\n const onHeadersReceived = callbackManager.headersReceived.add\r\n /**\r\n * 取消监听 HTTP Response Header 事件\r\n * @param {HeadersReceivedCallback} callback HTTP Response Header 事件的回调函数\r\n */\r\n const offHeadersReceived = callbackManager.headersReceived.remove\r\n\r\n /**\r\n * 监听进度变化事件\r\n * @param {ProgressUpdateCallback} callback HTTP Response Header 事件的回调函数\r\n */\r\n const onProgressUpdate = callbackManager.progressUpdate.add\r\n /**\r\n * 取消监听进度变化事件\r\n * @param {ProgressUpdateCallback} callback HTTP Response Header 事件的回调函数\r\n */\r\n const offProgressUpdate = callbackManager.progressUpdate.remove\r\n\r\n return {\r\n abort,\r\n onHeadersReceived,\r\n offHeadersReceived,\r\n onProgressUpdate,\r\n offProgressUpdate\r\n }\r\n}\r\n\r\n/**\r\n * 下载文件资源到本地。客户端直接发起一个 HTTPS GET 请求,返回文件的本地临时路径。使用前请注意阅读相关说明。\r\n * 注意:请在服务端响应的 header 中指定合理的 Content-Type 字段,以保证客户端正确处理文件类型。\r\n */\r\nexport const downloadFile: typeof Taro.downloadFile = ({ url, header, withCredentials, timeout, success, fail, complete }) => {\r\n let task!: Taro.DownloadTask\r\n const result: ReturnType<typeof Taro.downloadFile> = new Promise((resolve, reject) => {\r\n task = createDownloadTask({\r\n url,\r\n header,\r\n withCredentials,\r\n timeout,\r\n success: res => {\r\n success && success(res)\r\n complete && complete(res)\r\n resolve(res)\r\n },\r\n error: res => {\r\n fail && fail(res)\r\n complete && complete(res)\r\n reject(res)\r\n }\r\n })\r\n }) as any\r\n\r\n result.headersReceive = task.onHeadersReceived.bind(task)\r\n result.progress = task.onProgressUpdate.bind(task)\r\n\r\n const properties = {}\r\n Object.keys(task).forEach(key => {\r\n properties[key] = {\r\n get () {\r\n return typeof task[key] === 'function' ? task[key].bind(task) : task[key]\r\n }\r\n }\r\n })\r\n return Object.defineProperties(result, properties)\r\n}\r\n"],"names":[],"mappings":"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"}
@@ -18,19 +18,21 @@ function generateRequestUrlWithParams(url = '', params) {
18
18
  }
19
19
  function _request(options = {}) {
20
20
  const { success, complete, fail } = options;
21
- let url = options.url || '';
22
21
  const params = {};
23
22
  const res = {};
24
- if (options.jsonp) {
25
- const { jsonp } = options, opts = __rest(options, ["jsonp"]);
26
- Object.assign(params, opts);
23
+ let { cache = 'default', credentials, data, dataType, header = {}, jsonp, method = 'GET', mode, responseType, signal, timeout = 2000, url = '' } = options, opts = __rest(options, ["cache", "credentials", "data", "dataType", "header", "jsonp", "method", "mode", "responseType", "signal", "timeout", "url"]);
24
+ Object.assign(params, opts);
25
+ if (jsonp) {
27
26
  // @ts-ignore
28
- params.params = opts.data;
27
+ params.params = data;
29
28
  params.cache = opts.jsonpCache;
29
+ // @ts-ignore
30
+ params.timeout = timeout;
30
31
  if (typeof jsonp === 'string') {
31
32
  // @ts-ignore
32
33
  params.name = jsonp;
33
34
  }
35
+ // Note: https://github.com/luckyadam/jsonp-retry
34
36
  return jsonpRetry(url, params)
35
37
  .then(data => {
36
38
  res.statusCode = 200;
@@ -45,50 +47,49 @@ function _request(options = {}) {
45
47
  return Promise.reject(err);
46
48
  });
47
49
  }
48
- params.method = options.method || 'GET';
50
+ params.method = method;
49
51
  const methodUpper = params.method.toUpperCase();
50
- params.cache = options.cache || 'default';
52
+ params.cache = cache;
51
53
  if (methodUpper === 'GET' || methodUpper === 'HEAD') {
52
- url = generateRequestUrlWithParams(url, options.data);
54
+ url = generateRequestUrlWithParams(url, data);
53
55
  }
54
- else if (['[object Array]', '[object Object]'].indexOf(Object.prototype.toString.call(options.data)) >= 0) {
55
- options.header = options.header || {};
56
- const keyOfContentType = Object.keys(options.header).find(item => item.toLowerCase() === 'content-type');
56
+ else if (['[object Array]', '[object Object]'].indexOf(Object.prototype.toString.call(data)) >= 0) {
57
+ const keyOfContentType = Object.keys(header).find(item => item.toLowerCase() === 'content-type');
57
58
  if (!keyOfContentType) {
58
- options.header['Content-Type'] = 'application/json';
59
+ header['Content-Type'] = 'application/json';
59
60
  }
60
- const contentType = options.header[keyOfContentType || 'Content-Type'];
61
+ const contentType = header[keyOfContentType || 'Content-Type'];
61
62
  if (contentType.indexOf('application/json') >= 0) {
62
- params.body = JSON.stringify(options.data);
63
+ params.body = JSON.stringify(data);
63
64
  }
64
65
  else if (contentType.indexOf('application/x-www-form-urlencoded') >= 0) {
65
- params.body = serializeParams(options.data);
66
+ params.body = serializeParams(data);
66
67
  }
67
68
  else {
68
- params.body = options.data;
69
+ params.body = data;
69
70
  }
70
71
  }
71
72
  else {
72
- params.body = options.data;
73
+ params.body = data;
73
74
  }
74
- if (options.header) {
75
- params.headers = options.header;
75
+ if (header) {
76
+ params.headers = header;
76
77
  }
77
- if (options.mode) {
78
- params.mode = options.mode;
78
+ if (mode) {
79
+ params.mode = mode;
79
80
  }
80
81
  let timeoutTimer = null;
81
- if (options.signal) {
82
- params.signal = options.signal;
82
+ if (signal) {
83
+ params.signal = signal;
83
84
  }
84
- else if (typeof options.timeout === 'number') {
85
+ else if (typeof timeout === 'number') {
85
86
  const controller = new window.AbortController();
86
87
  params.signal = controller.signal;
87
88
  timeoutTimer = setTimeout(function () {
88
89
  controller.abort();
89
- }, options.timeout);
90
+ }, timeout);
90
91
  }
91
- params.credentials = options.credentials;
92
+ params.credentials = credentials;
92
93
  return fetch(url, params)
93
94
  .then(response => {
94
95
  if (timeoutTimer) {
@@ -104,17 +105,17 @@ function _request(options = {}) {
104
105
  for (const key of response.headers.keys()) {
105
106
  res.header[key] = response.headers.get(key);
106
107
  }
107
- if (options.responseType === 'arraybuffer') {
108
+ if (responseType === 'arraybuffer') {
108
109
  return response.arrayBuffer();
109
110
  }
110
111
  if (res.statusCode !== 204) {
111
- if (options.dataType === 'json' || typeof options.dataType === 'undefined') {
112
+ if (dataType === 'json' || typeof dataType === 'undefined') {
112
113
  return response.json().catch(() => {
113
114
  return null;
114
115
  });
115
116
  }
116
117
  }
117
- if (options.responseType === 'text' || options.dataType === 'text') {
118
+ if (responseType === 'text' || dataType === 'text') {
118
119
  return response.text();
119
120
  }
120
121
  return Promise.resolve(null);
@@ -1 +1 @@
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 = '', 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\nfunction _request (options: Partial<Taro.request.Option> = {}) {\n const { success, complete, fail } = options\n let url = options.url || ''\n const params: RequestInit = {}\n const res: any = {}\n if (options.jsonp) {\n const { jsonp, ...opts } = options\n Object.assign(params, opts)\n // @ts-ignore\n params.params = opts.data\n params.cache = opts.jsonpCache\n if (typeof jsonp === 'string') {\n // @ts-ignore\n params.name = jsonp\n }\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 Array]', '[object Object]'].indexOf(Object.prototype.toString.call(options.data)) >= 0) {\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 = (<T extends Partial<Taro.request.Option> = TaroGeneral.IAnyObject>(...args: [string | T, T]) => {\n const [url = '', options = {} as T] = args\n if (typeof url === 'string') {\n options.url = url\n } else {\n Object.assign(options, url)\n }\n return link.request(options)\n}) as typeof Taro.request\nexport const addInterceptor = link.addInterceptor.bind(link)\nexport const cleanInterceptors = link.cleanInterceptors.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 = '', 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\nfunction _request (options: Partial<Taro.request.Option> = {}) {\n const { success, complete, fail } = options\n const params: RequestInit = {}\n const res: any = {}\n let {\n cache = 'default',\n credentials,\n data, dataType,\n header = {},\n jsonp,\n method = 'GET',\n mode,\n responseType,\n signal,\n timeout = 2000,\n url = '',\n ...opts\n } = options\n Object.assign(params, opts)\n if (jsonp) {\n // @ts-ignore\n params.params = data\n params.cache = opts.jsonpCache\n // @ts-ignore\n params.timeout = timeout\n if (typeof jsonp === 'string') {\n // @ts-ignore\n params.name = jsonp\n }\n // Note: https://github.com/luckyadam/jsonp-retry\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 = method\n const methodUpper = params.method.toUpperCase()\n params.cache = cache\n if (methodUpper === 'GET' || methodUpper === 'HEAD') {\n url = generateRequestUrlWithParams(url, data)\n } else if (['[object Array]', '[object Object]'].indexOf(Object.prototype.toString.call(data)) >= 0) {\n const keyOfContentType = Object.keys(header).find(item => item.toLowerCase() === 'content-type')\n if (!keyOfContentType) {\n header['Content-Type'] = 'application/json'\n }\n const contentType = header[keyOfContentType || 'Content-Type']\n\n if (contentType.indexOf('application/json') >= 0) {\n params.body = JSON.stringify(data)\n } else if (contentType.indexOf('application/x-www-form-urlencoded') >= 0) {\n params.body = serializeParams(data)\n } else {\n params.body = data\n }\n } else {\n params.body = data\n }\n if (header) {\n params.headers = header\n }\n if (mode) {\n params.mode = mode\n }\n let timeoutTimer: ReturnType<typeof setTimeout> | null = null\n if (signal) {\n params.signal = signal\n } else if (typeof timeout === 'number') {\n const controller = new window.AbortController()\n params.signal = controller.signal\n timeoutTimer = setTimeout(function () {\n controller.abort()\n }, timeout)\n }\n params.credentials = 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 (responseType === 'arraybuffer') {\n return response.arrayBuffer()\n }\n if (res.statusCode !== 204) {\n if (dataType === 'json' || typeof dataType === 'undefined') {\n return response.json().catch(() => {\n return null\n })\n }\n }\n if (responseType === 'text' || 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 = (<T extends Partial<Taro.request.Option> = TaroGeneral.IAnyObject>(...args: [string | T, T]) => {\n const [url = '', options = {} as T] = args\n if (typeof url === 'string') {\n options.url = url\n } else {\n Object.assign(options, url)\n }\n return link.request(options)\n}) as typeof Taro.request\nexport const addInterceptor = link.addInterceptor.bind(link)\nexport const cleanInterceptors = link.cleanInterceptors.bind(link)\n"],"names":[],"mappings":";;;;;;;;AASA;AACA,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;AAErB,SAAS,4BAA4B,CAAE,GAAG,GAAG,EAAE,EAAE,MAAgB,EAAA;AAC/D,IAAA,MAAM,GAAG,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;AACtE,IAAA,IAAI,MAAM,EAAE;QACV,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,MAAM,CAAA;AAChD,KAAA;IACD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;AAC5B,IAAA,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,QAAQ,CAAE,OAAA,GAAwC,EAAE,EAAA;IAC3D,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;IAC3C,MAAM,MAAM,GAAgB,EAAE,CAAA;IAC9B,MAAM,GAAG,GAAQ,EAAE,CAAA;AACnB,IAAA,IAAI,EACF,KAAK,GAAG,SAAS,EACjB,WAAW,EACX,IAAI,EAAE,QAAQ,EACd,MAAM,GAAG,EAAE,EACX,KAAK,EACL,MAAM,GAAG,KAAK,EACd,IAAI,EACJ,YAAY,EACZ,MAAM,EACN,OAAO,GAAG,IAAI,EACd,GAAG,GAAG,EAAE,EAEN,GAAA,OAAO,EADN,IAAI,GAAA,MAAA,CACL,OAAO,EAbP,CAAA,OAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,MAAA,EAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,KAAA,CAaH,CAAU,CAAA;AACX,IAAA,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;AAC3B,IAAA,IAAI,KAAK,EAAE;;AAET,QAAA,MAAM,CAAC,MAAM,GAAG,IAAI,CAAA;AACpB,QAAA,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAA;;AAE9B,QAAA,MAAM,CAAC,OAAO,GAAG,OAAO,CAAA;AACxB,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;;AAE7B,YAAA,MAAM,CAAC,IAAI,GAAG,KAAK,CAAA;AACpB,SAAA;;AAED,QAAA,OAAO,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC;aAC3B,IAAI,CAAC,IAAI,IAAG;AACX,YAAA,GAAG,CAAC,UAAU,GAAG,GAAG,CAAA;AACpB,YAAA,GAAG,CAAC,IAAI,GAAG,IAAI,CAAA;YACf,UAAU,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAA;YACnC,UAAU,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAA;AACrC,YAAA,OAAO,GAAG,CAAA;AACZ,SAAC,CAAC;aACD,KAAK,CAAC,GAAG,IAAG;YACX,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAA;YAC7B,UAAU,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAA;AACrC,YAAA,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AAC5B,SAAC,CAAC,CAAA;AACL,KAAA;AACD,IAAA,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAA;AAC/C,IAAA,MAAM,CAAC,KAAK,GAAG,KAAK,CAAA;AACpB,IAAA,IAAI,WAAW,KAAK,KAAK,IAAI,WAAW,KAAK,MAAM,EAAE;AACnD,QAAA,GAAG,GAAG,4BAA4B,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;AAC9C,KAAA;SAAM,IAAI,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;QACnG,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,cAAc,CAAC,CAAA;QAChG,IAAI,CAAC,gBAAgB,EAAE;AACrB,YAAA,MAAM,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAA;AAC5C,SAAA;QACD,MAAM,WAAW,GAAG,MAAM,CAAC,gBAAgB,IAAI,cAAc,CAAC,CAAA;QAE9D,IAAI,WAAW,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE;YAChD,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;AACnC,SAAA;aAAM,IAAI,WAAW,CAAC,OAAO,CAAC,mCAAmC,CAAC,IAAI,CAAC,EAAE;AACxE,YAAA,MAAM,CAAC,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;AACpC,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;AACnB,SAAA;AACF,KAAA;AAAM,SAAA;AACL,QAAA,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;AACnB,KAAA;AACD,IAAA,IAAI,MAAM,EAAE;AACV,QAAA,MAAM,CAAC,OAAO,GAAG,MAAM,CAAA;AACxB,KAAA;AACD,IAAA,IAAI,IAAI,EAAE;AACR,QAAA,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;AACnB,KAAA;IACD,IAAI,YAAY,GAAyC,IAAI,CAAA;AAC7D,IAAA,IAAI,MAAM,EAAE;AACV,QAAA,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;AACvB,KAAA;AAAM,SAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AACtC,QAAA,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,eAAe,EAAE,CAAA;AAC/C,QAAA,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;QACjC,YAAY,GAAG,UAAU,CAAC,YAAA;YACxB,UAAU,CAAC,KAAK,EAAE,CAAA;SACnB,EAAE,OAAO,CAAC,CAAA;AACZ,KAAA;AACD,IAAA,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;AAChC,IAAA,OAAO,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC;SACtB,IAAI,CAAC,QAAQ,IAAG;AACf,QAAA,IAAI,YAAY,EAAE;YAChB,YAAY,CAAC,YAAY,CAAC,CAAA;YAC1B,YAAY,GAAG,IAAI,CAAA;AACpB,SAAA;QACD,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,MAAM,aAAa,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,CAAA;AACnC,YAAA,MAAM,aAAa,CAAA;AACpB,SAAA;AACD,QAAA,GAAG,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAA;AAChC,QAAA,GAAG,CAAC,MAAM,GAAG,EAAE,CAAA;QACf,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE;AACzC,YAAA,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAC5C,SAAA;QACD,IAAI,YAAY,KAAK,aAAa,EAAE;AAClC,YAAA,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAA;AAC9B,SAAA;AACD,QAAA,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE;YAC1B,IAAI,QAAQ,KAAK,MAAM,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;gBAC1D,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAK;AAChC,oBAAA,OAAO,IAAI,CAAA;AACb,iBAAC,CAAC,CAAA;AACH,aAAA;AACF,SAAA;AACD,QAAA,IAAI,YAAY,KAAK,MAAM,IAAI,QAAQ,KAAK,MAAM,EAAE;AAClD,YAAA,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAA;AACvB,SAAA;AACD,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AAC9B,KAAC,CAAC;SACD,IAAI,CAAC,IAAI,IAAG;AACX,QAAA,GAAG,CAAC,IAAI,GAAG,IAAI,CAAA;QACf,UAAU,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAA;QACnC,UAAU,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAA;AACrC,QAAA,OAAO,GAAG,CAAA;AACZ,KAAC,CAAC;SACD,KAAK,CAAC,GAAG,IAAG;AACX,QAAA,IAAI,YAAY,EAAE;YAChB,YAAY,CAAC,YAAY,CAAC,CAAA;YAC1B,YAAY,GAAG,IAAI,CAAA;AACpB,SAAA;QACD,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAA;QAC7B,UAAU,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAA;AACrC,QAAA,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAA;AAC/B,QAAA,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,OAAO,CAAA;AACxB,QAAA,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AAC5B,KAAC,CAAC,CAAA;AACN,CAAC;AAED,SAAS,eAAe,CAAE,KAAK,EAAA;AAC7B,IAAA,OAAO,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;AACtC,CAAC;AAED,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,CAAA;MAEzB,OAAO,IAAI,CAAkE,GAAG,IAAqB,KAAI;IACpH,MAAM,CAAC,GAAG,GAAG,EAAE,EAAE,OAAO,GAAG,EAAO,CAAC,GAAG,IAAI,CAAA;AAC1C,IAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC3B,QAAA,OAAO,CAAC,GAAG,GAAG,GAAG,CAAA;AAClB,KAAA;AAAM,SAAA;AACL,QAAA,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;AAC5B,KAAA;AACD,IAAA,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;AAC9B,CAAC,EAAwB;AAClB,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAC;AACrD,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI;;;;"}
@@ -142,15 +142,17 @@ const uploadFile = ({ url, filePath, name, header, formData, timeout, fileName,
142
142
  }
143
143
  });
144
144
  });
145
- result.headersReceive = task.onHeadersReceived;
146
- result.progress = task.onProgressUpdate;
147
- return new Proxy(result, {
148
- get(target, prop) {
149
- const object = prop in task ? task : target;
150
- const value = object[prop];
151
- return typeof value === 'function' ? value.bind(object) : value;
152
- },
145
+ result.headersReceive = task.onHeadersReceived.bind(task);
146
+ result.progress = task.onProgressUpdate.bind(task);
147
+ const properties = {};
148
+ Object.keys(task).forEach(key => {
149
+ properties[key] = {
150
+ get() {
151
+ return typeof task[key] === 'function' ? task[key].bind(task) : task[key];
152
+ }
153
+ };
153
154
  });
155
+ return Object.defineProperties(result, properties);
154
156
  };
155
157
 
156
158
  export { uploadFile };
@@ -1 +1 @@
1
- {"version":3,"file":"upload.js","sources":["../../../src/api/network/upload.ts"],"sourcesContent":["import Taro from '@tarojs/api'\r\n\r\nimport { CallbackManager } from '../../utils/handler'\r\nimport {\r\n convertObjectUrlToBlob,\r\n NETWORK_TIMEOUT,\r\n setHeader,\r\n XHR_STATS\r\n} from './utils'\r\n\r\nconst createUploadTask = ({ url, filePath, formData = {}, name, header, timeout, fileName, withCredentials = true, success, error }): Taro.UploadTask => {\r\n let timeoutInter: ReturnType<typeof setTimeout>\r\n let formKey\r\n const apiName = 'uploadFile'\r\n const xhr = new XMLHttpRequest()\r\n const form = new FormData()\r\n const callbackManager = {\r\n headersReceived: new CallbackManager(),\r\n progressUpdate: new CallbackManager()\r\n }\r\n\r\n xhr.open('POST', url)\r\n xhr.withCredentials = !!withCredentials\r\n setHeader(xhr, header)\r\n\r\n for (formKey in formData) {\r\n form.append(formKey, formData[formKey])\r\n }\r\n\r\n xhr.upload.onprogress = e => {\r\n const { loaded, total } = e\r\n callbackManager.progressUpdate.trigger({\r\n progress: Math.round(loaded / total * 100),\r\n totalBytesSent: loaded,\r\n totalBytesExpectedToSend: total\r\n })\r\n }\r\n\r\n xhr.onreadystatechange = () => {\r\n if (xhr.readyState !== XHR_STATS.HEADERS_RECEIVED) return\r\n callbackManager.headersReceived.trigger({\r\n header: xhr.getAllResponseHeaders()\r\n })\r\n }\r\n\r\n xhr.onload = () => {\r\n const status = xhr.status\r\n clearTimeout(timeoutInter)\r\n success({\r\n errMsg: `${apiName}:ok`,\r\n statusCode: status,\r\n data: xhr.responseText || xhr.response\r\n })\r\n }\r\n\r\n xhr.onabort = () => {\r\n clearTimeout(timeoutInter)\r\n error({\r\n errMsg: `${apiName}:fail abort`\r\n })\r\n }\r\n\r\n xhr.onerror = (e: ProgressEvent<EventTarget> & { message?: string }) => {\r\n clearTimeout(timeoutInter)\r\n error({\r\n errMsg: `${apiName}:fail ${e.message}`\r\n })\r\n }\r\n\r\n /**\r\n * 中断任务\r\n */\r\n const abort = () => {\r\n clearTimeout(timeoutInter)\r\n xhr.abort()\r\n }\r\n\r\n const send = () => {\r\n xhr.send(form)\r\n timeoutInter = setTimeout(() => {\r\n xhr.onabort = null\r\n xhr.onload = null\r\n xhr.upload.onprogress = null\r\n xhr.onreadystatechange = null\r\n xhr.onerror = null\r\n abort()\r\n error({\r\n errMsg: `${apiName}:fail timeout`\r\n })\r\n }, timeout || NETWORK_TIMEOUT)\r\n }\r\n\r\n convertObjectUrlToBlob(filePath)\r\n .then((fileObj: string | (Blob & { name?: string })) => {\r\n if (!fileName) {\r\n fileName = typeof fileObj !== 'string' && fileObj.name\r\n }\r\n form.append(name, fileObj, fileName || `file-${Date.now()}`)\r\n send()\r\n })\r\n .catch(e => {\r\n error({\r\n errMsg: `${apiName}:fail ${e.message}`\r\n })\r\n })\r\n\r\n /**\r\n * 监听 HTTP Response Header 事件。会比请求完成事件更早\r\n * @param {HeadersReceivedCallback} callback HTTP Response Header 事件的回调函数\r\n */\r\n const onHeadersReceived = callbackManager.headersReceived.add\r\n /**\r\n * 取消监听 HTTP Response Header 事件\r\n * @param {HeadersReceivedCallback} callback HTTP Response Header 事件的回调函数\r\n */\r\n const offHeadersReceived = callbackManager.headersReceived.remove\r\n\r\n /**\r\n * 监听进度变化事件\r\n * @param {ProgressUpdateCallback} callback HTTP Response Header 事件的回调函数\r\n */\r\n const onProgressUpdate = callbackManager.progressUpdate.add\r\n /**\r\n * 取消监听进度变化事件\r\n * @param {ProgressUpdateCallback} callback HTTP Response Header 事件的回调函数\r\n */\r\n const offProgressUpdate = callbackManager.progressUpdate.remove\r\n\r\n return {\r\n abort,\r\n onHeadersReceived,\r\n offHeadersReceived,\r\n onProgressUpdate,\r\n offProgressUpdate\r\n }\r\n}\r\n\r\n/**\r\n * 将本地资源上传到服务器。客户端发起一个 HTTPS POST 请求,其中 content-type 为 multipart/form-data。使用前请注意阅读相关说明。\r\n */\r\nexport const uploadFile: typeof Taro.uploadFile = ({ url, filePath, name, header, formData, timeout, fileName, withCredentials, success, fail, complete }) => {\r\n let task!: Taro.UploadTask\r\n const result: ReturnType<typeof Taro.uploadFile> = new Promise((resolve, reject) => {\r\n task = createUploadTask({\r\n url,\r\n header,\r\n name,\r\n filePath,\r\n formData,\r\n timeout,\r\n fileName,\r\n withCredentials,\r\n success: res => {\r\n success && success(res)\r\n complete && complete(res)\r\n resolve(res)\r\n },\r\n error: res => {\r\n fail && fail(res)\r\n complete && complete(res)\r\n reject(res)\r\n }\r\n })\r\n }) as any\r\n\r\n result.headersReceive = task.onHeadersReceived\r\n result.progress = task.onProgressUpdate\r\n\r\n return new Proxy(result, {\r\n get (target, prop) {\r\n const object = prop in task ? task : target\r\n const value = object[prop]\r\n return typeof value === 'function' ? value.bind(object) : value\r\n },\r\n })\r\n}\r\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upload.js","sources":["../../../src/api/network/upload.ts"],"sourcesContent":["import Taro from '@tarojs/api'\r\n\r\nimport { CallbackManager } from '../../utils/handler'\r\nimport {\r\n convertObjectUrlToBlob,\r\n NETWORK_TIMEOUT,\r\n setHeader,\r\n XHR_STATS\r\n} from './utils'\r\n\r\nconst createUploadTask = ({ url, filePath, formData = {}, name, header, timeout, fileName, withCredentials = true, success, error }): Taro.UploadTask => {\r\n let timeoutInter: ReturnType<typeof setTimeout>\r\n let formKey\r\n const apiName = 'uploadFile'\r\n const xhr = new XMLHttpRequest()\r\n const form = new FormData()\r\n const callbackManager = {\r\n headersReceived: new CallbackManager(),\r\n progressUpdate: new CallbackManager()\r\n }\r\n\r\n xhr.open('POST', url)\r\n xhr.withCredentials = !!withCredentials\r\n setHeader(xhr, header)\r\n\r\n for (formKey in formData) {\r\n form.append(formKey, formData[formKey])\r\n }\r\n\r\n xhr.upload.onprogress = e => {\r\n const { loaded, total } = e\r\n callbackManager.progressUpdate.trigger({\r\n progress: Math.round(loaded / total * 100),\r\n totalBytesSent: loaded,\r\n totalBytesExpectedToSend: total\r\n })\r\n }\r\n\r\n xhr.onreadystatechange = () => {\r\n if (xhr.readyState !== XHR_STATS.HEADERS_RECEIVED) return\r\n callbackManager.headersReceived.trigger({\r\n header: xhr.getAllResponseHeaders()\r\n })\r\n }\r\n\r\n xhr.onload = () => {\r\n const status = xhr.status\r\n clearTimeout(timeoutInter)\r\n success({\r\n errMsg: `${apiName}:ok`,\r\n statusCode: status,\r\n data: xhr.responseText || xhr.response\r\n })\r\n }\r\n\r\n xhr.onabort = () => {\r\n clearTimeout(timeoutInter)\r\n error({\r\n errMsg: `${apiName}:fail abort`\r\n })\r\n }\r\n\r\n xhr.onerror = (e: ProgressEvent<EventTarget> & { message?: string }) => {\r\n clearTimeout(timeoutInter)\r\n error({\r\n errMsg: `${apiName}:fail ${e.message}`\r\n })\r\n }\r\n\r\n /**\r\n * 中断任务\r\n */\r\n const abort = () => {\r\n clearTimeout(timeoutInter)\r\n xhr.abort()\r\n }\r\n\r\n const send = () => {\r\n xhr.send(form)\r\n timeoutInter = setTimeout(() => {\r\n xhr.onabort = null\r\n xhr.onload = null\r\n xhr.upload.onprogress = null\r\n xhr.onreadystatechange = null\r\n xhr.onerror = null\r\n abort()\r\n error({\r\n errMsg: `${apiName}:fail timeout`\r\n })\r\n }, timeout || NETWORK_TIMEOUT)\r\n }\r\n\r\n convertObjectUrlToBlob(filePath)\r\n .then((fileObj: string | (Blob & { name?: string })) => {\r\n if (!fileName) {\r\n fileName = typeof fileObj !== 'string' && fileObj.name\r\n }\r\n form.append(name, fileObj as Blob, fileName || `file-${Date.now()}`)\r\n send()\r\n })\r\n .catch(e => {\r\n error({\r\n errMsg: `${apiName}:fail ${e.message}`\r\n })\r\n })\r\n\r\n /**\r\n * 监听 HTTP Response Header 事件。会比请求完成事件更早\r\n * @param {HeadersReceivedCallback} callback HTTP Response Header 事件的回调函数\r\n */\r\n const onHeadersReceived = callbackManager.headersReceived.add\r\n /**\r\n * 取消监听 HTTP Response Header 事件\r\n * @param {HeadersReceivedCallback} callback HTTP Response Header 事件的回调函数\r\n */\r\n const offHeadersReceived = callbackManager.headersReceived.remove\r\n\r\n /**\r\n * 监听进度变化事件\r\n * @param {ProgressUpdateCallback} callback HTTP Response Header 事件的回调函数\r\n */\r\n const onProgressUpdate = callbackManager.progressUpdate.add\r\n /**\r\n * 取消监听进度变化事件\r\n * @param {ProgressUpdateCallback} callback HTTP Response Header 事件的回调函数\r\n */\r\n const offProgressUpdate = callbackManager.progressUpdate.remove\r\n\r\n return {\r\n abort,\r\n onHeadersReceived,\r\n offHeadersReceived,\r\n onProgressUpdate,\r\n offProgressUpdate\r\n }\r\n}\r\n\r\n/**\r\n * 将本地资源上传到服务器。客户端发起一个 HTTPS POST 请求,其中 content-type 为 multipart/form-data。使用前请注意阅读相关说明。\r\n */\r\nexport const uploadFile: typeof Taro.uploadFile = ({ url, filePath, name, header, formData, timeout, fileName, withCredentials, success, fail, complete }) => {\r\n let task!: Taro.UploadTask\r\n const result: ReturnType<typeof Taro.uploadFile> = new Promise((resolve, reject) => {\r\n task = createUploadTask({\r\n url,\r\n header,\r\n name,\r\n filePath,\r\n formData,\r\n timeout,\r\n fileName,\r\n withCredentials,\r\n success: res => {\r\n success && success(res)\r\n complete && complete(res)\r\n resolve(res)\r\n },\r\n error: res => {\r\n fail && fail(res)\r\n complete && complete(res)\r\n reject(res)\r\n }\r\n })\r\n }) as any\r\n\r\n result.headersReceive = task.onHeadersReceived.bind(task)\r\n result.progress = task.onProgressUpdate.bind(task)\r\n\r\n const properties = {}\r\n Object.keys(task).forEach(key => {\r\n properties[key] = {\r\n get () {\r\n return typeof task[key] === 'function' ? task[key].bind(task) : task[key]\r\n }\r\n }\r\n })\r\n return Object.defineProperties(result, properties)\r\n}\r\n"],"names":[],"mappings":";;;AAUA,MAAM,gBAAgB,GAAG,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAqB;AACtJ,IAAA,IAAI,YAA2C,CAAA;AAC/C,IAAA,IAAI,OAAO,CAAA;IACX,MAAM,OAAO,GAAG,YAAY,CAAA;AAC5B,IAAA,MAAM,GAAG,GAAG,IAAI,cAAc,EAAE,CAAA;AAChC,IAAA,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAA;AAC3B,IAAA,MAAM,eAAe,GAAG;QACtB,eAAe,EAAE,IAAI,eAAe,EAAE;QACtC,cAAc,EAAE,IAAI,eAAe,EAAE;KACtC,CAAA;AAED,IAAA,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AACrB,IAAA,GAAG,CAAC,eAAe,GAAG,CAAC,CAAC,eAAe,CAAA;AACvC,IAAA,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IAEtB,KAAK,OAAO,IAAI,QAAQ,EAAE;QACxB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;AACxC,KAAA;AAED,IAAA,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,IAAG;AAC1B,QAAA,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;AAC3B,QAAA,eAAe,CAAC,cAAc,CAAC,OAAO,CAAC;YACrC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,GAAG,GAAG,CAAC;AAC1C,YAAA,cAAc,EAAE,MAAM;AACtB,YAAA,wBAAwB,EAAE,KAAK;AAChC,SAAA,CAAC,CAAA;AACJ,KAAC,CAAA;AAED,IAAA,GAAG,CAAC,kBAAkB,GAAG,MAAK;AAC5B,QAAA,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,gBAAgB;YAAE,OAAM;AACzD,QAAA,eAAe,CAAC,eAAe,CAAC,OAAO,CAAC;AACtC,YAAA,MAAM,EAAE,GAAG,CAAC,qBAAqB,EAAE;AACpC,SAAA,CAAC,CAAA;AACJ,KAAC,CAAA;AAED,IAAA,GAAG,CAAC,MAAM,GAAG,MAAK;AAChB,QAAA,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAA;QACzB,YAAY,CAAC,YAAY,CAAC,CAAA;AAC1B,QAAA,OAAO,CAAC;YACN,MAAM,EAAE,CAAG,EAAA,OAAO,CAAK,GAAA,CAAA;AACvB,YAAA,UAAU,EAAE,MAAM;AAClB,YAAA,IAAI,EAAE,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,QAAQ;AACvC,SAAA,CAAC,CAAA;AACJ,KAAC,CAAA;AAED,IAAA,GAAG,CAAC,OAAO,GAAG,MAAK;QACjB,YAAY,CAAC,YAAY,CAAC,CAAA;AAC1B,QAAA,KAAK,CAAC;YACJ,MAAM,EAAE,CAAG,EAAA,OAAO,CAAa,WAAA,CAAA;AAChC,SAAA,CAAC,CAAA;AACJ,KAAC,CAAA;AAED,IAAA,GAAG,CAAC,OAAO,GAAG,CAAC,CAAoD,KAAI;QACrE,YAAY,CAAC,YAAY,CAAC,CAAA;AAC1B,QAAA,KAAK,CAAC;AACJ,YAAA,MAAM,EAAE,CAAG,EAAA,OAAO,SAAS,CAAC,CAAC,OAAO,CAAE,CAAA;AACvC,SAAA,CAAC,CAAA;AACJ,KAAC,CAAA;AAED;;AAEG;IACH,MAAM,KAAK,GAAG,MAAK;QACjB,YAAY,CAAC,YAAY,CAAC,CAAA;QAC1B,GAAG,CAAC,KAAK,EAAE,CAAA;AACb,KAAC,CAAA;IAED,MAAM,IAAI,GAAG,MAAK;AAChB,QAAA,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,QAAA,YAAY,GAAG,UAAU,CAAC,MAAK;AAC7B,YAAA,GAAG,CAAC,OAAO,GAAG,IAAI,CAAA;AAClB,YAAA,GAAG,CAAC,MAAM,GAAG,IAAI,CAAA;AACjB,YAAA,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAA;AAC5B,YAAA,GAAG,CAAC,kBAAkB,GAAG,IAAI,CAAA;AAC7B,YAAA,GAAG,CAAC,OAAO,GAAG,IAAI,CAAA;AAClB,YAAA,KAAK,EAAE,CAAA;AACP,YAAA,KAAK,CAAC;gBACJ,MAAM,EAAE,CAAG,EAAA,OAAO,CAAe,aAAA,CAAA;AAClC,aAAA,CAAC,CAAA;AACJ,SAAC,EAAE,OAAO,IAAI,eAAe,CAAC,CAAA;AAChC,KAAC,CAAA;IAED,sBAAsB,CAAC,QAAQ,CAAC;AAC7B,SAAA,IAAI,CAAC,CAAC,OAA4C,KAAI;QACrD,IAAI,CAAC,QAAQ,EAAE;YACb,QAAQ,GAAG,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAA;AACvD,SAAA;AACD,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAe,EAAE,QAAQ,IAAI,CAAA,KAAA,EAAQ,IAAI,CAAC,GAAG,EAAE,CAAA,CAAE,CAAC,CAAA;AACpE,QAAA,IAAI,EAAE,CAAA;AACR,KAAC,CAAC;SACD,KAAK,CAAC,CAAC,IAAG;AACT,QAAA,KAAK,CAAC;AACJ,YAAA,MAAM,EAAE,CAAG,EAAA,OAAO,SAAS,CAAC,CAAC,OAAO,CAAE,CAAA;AACvC,SAAA,CAAC,CAAA;AACJ,KAAC,CAAC,CAAA;AAEJ;;;AAGG;AACH,IAAA,MAAM,iBAAiB,GAAG,eAAe,CAAC,eAAe,CAAC,GAAG,CAAA;AAC7D;;;AAGG;AACH,IAAA,MAAM,kBAAkB,GAAG,eAAe,CAAC,eAAe,CAAC,MAAM,CAAA;AAEjE;;;AAGG;AACH,IAAA,MAAM,gBAAgB,GAAG,eAAe,CAAC,cAAc,CAAC,GAAG,CAAA;AAC3D;;;AAGG;AACH,IAAA,MAAM,iBAAiB,GAAG,eAAe,CAAC,cAAc,CAAC,MAAM,CAAA;IAE/D,OAAO;QACL,KAAK;QACL,iBAAiB;QACjB,kBAAkB;QAClB,gBAAgB;QAChB,iBAAiB;KAClB,CAAA;AACH,CAAC,CAAA;AAED;;AAEG;AACI,MAAM,UAAU,GAA2B,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAI;AAC3J,IAAA,IAAI,IAAsB,CAAA;IAC1B,MAAM,MAAM,GAAuC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;QACjF,IAAI,GAAG,gBAAgB,CAAC;YACtB,GAAG;YACH,MAAM;YACN,IAAI;YACJ,QAAQ;YACR,QAAQ;YACR,OAAO;YACP,QAAQ;YACR,eAAe;YACf,OAAO,EAAE,GAAG,IAAG;AACb,gBAAA,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,CAAA;AACvB,gBAAA,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAA;gBACzB,OAAO,CAAC,GAAG,CAAC,CAAA;aACb;YACD,KAAK,EAAE,GAAG,IAAG;AACX,gBAAA,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,CAAA;AACjB,gBAAA,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAA;gBACzB,MAAM,CAAC,GAAG,CAAC,CAAA;aACZ;AACF,SAAA,CAAC,CAAA;AACJ,KAAC,CAAQ,CAAA;IAET,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzD,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAElD,MAAM,UAAU,GAAG,EAAE,CAAA;IACrB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,IAAG;QAC9B,UAAU,CAAC,GAAG,CAAC,GAAG;YAChB,GAAG,GAAA;gBACD,OAAO,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;aAC1E;SACF,CAAA;AACH,KAAC,CAAC,CAAA;IACF,OAAO,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;AACpD;;;;"}