@tarojs/taro-rn 4.0.0-beta.78 → 4.0.0-beta.79

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.
Files changed (182) hide show
  1. package/LICENSE +8 -1
  2. package/apiList.js +31 -31
  3. package/dist/api/index.js +1 -1
  4. package/dist/api/index.js.map +1 -1
  5. package/dist/lib/Mask.js +2 -2
  6. package/dist/lib/Mask.js.map +1 -1
  7. package/dist/lib/Popup.js +3 -3
  8. package/dist/lib/Popup.js.map +1 -1
  9. package/dist/lib/StyleSheet.js +1 -1
  10. package/dist/lib/StyleSheet.js.map +1 -1
  11. package/dist/lib/accelerometer.js +1 -1
  12. package/dist/lib/accelerometer.js.map +1 -1
  13. package/dist/lib/chooseMedia/index.js.map +1 -1
  14. package/dist/lib/clearStorage/index.js +2 -2
  15. package/dist/lib/clearStorage/index.js.map +1 -1
  16. package/dist/lib/compressImage/index.js +1 -1
  17. package/dist/lib/compressImage/index.js.map +1 -1
  18. package/dist/lib/connectSocket/index.js.map +1 -1
  19. package/dist/lib/connectSocket/socketTask.js +1 -1
  20. package/dist/lib/connectSocket/socketTask.js.map +1 -1
  21. package/dist/lib/createCameraContext/index.js +3 -3
  22. package/dist/lib/createCameraContext/index.js.map +1 -1
  23. package/dist/lib/createInnerAudioContext/index.js +2 -2
  24. package/dist/lib/createInnerAudioContext/index.js.map +1 -1
  25. package/dist/lib/createVideoContext/index.js +7 -7
  26. package/dist/lib/createVideoContext/index.js.map +1 -1
  27. package/dist/lib/deviceMotion.js +2 -2
  28. package/dist/lib/deviceMotion.js.map +1 -1
  29. package/dist/lib/file.js +4 -4
  30. package/dist/lib/file.js.map +1 -1
  31. package/dist/lib/getAppBaseInfo/index.js +2 -2
  32. package/dist/lib/getAppBaseInfo/index.js.map +1 -1
  33. package/dist/lib/getClipboardData/index.js.map +1 -1
  34. package/dist/lib/getImageInfo/index.js +2 -2
  35. package/dist/lib/getImageInfo/index.js.map +1 -1
  36. package/dist/lib/getLocation/index.js +2 -2
  37. package/dist/lib/getLocation/index.js.map +1 -1
  38. package/dist/lib/getRecorderManager/index.js +5 -5
  39. package/dist/lib/getRecorderManager/index.js.map +1 -1
  40. package/dist/lib/getStorage/index.js.map +1 -1
  41. package/dist/lib/getStorageInfo/index.js +2 -2
  42. package/dist/lib/getStorageInfo/index.js.map +1 -1
  43. package/dist/lib/getSystemInfo/index.js +1 -1
  44. package/dist/lib/getSystemInfo/index.js.map +1 -1
  45. package/dist/lib/getSystemInfoSync/index.js +2 -2
  46. package/dist/lib/getSystemInfoSync/index.js.map +1 -1
  47. package/dist/lib/gyroscope.js +1 -1
  48. package/dist/lib/gyroscope.js.map +1 -1
  49. package/dist/lib/keyboard.js +3 -3
  50. package/dist/lib/keyboard.js.map +1 -1
  51. package/dist/lib/location.js.map +1 -1
  52. package/dist/lib/makePhoneCall/index.js +1 -1
  53. package/dist/lib/makePhoneCall/index.js.map +1 -1
  54. package/dist/lib/media.js +13 -15
  55. package/dist/lib/media.js.map +1 -1
  56. package/dist/lib/network.js +1 -1
  57. package/dist/lib/network.js.map +1 -1
  58. package/dist/lib/offWindowResize/index.js.map +1 -1
  59. package/dist/lib/onWindowResize/index.js +1 -1
  60. package/dist/lib/onWindowResize/index.js.map +1 -1
  61. package/dist/lib/openUrl/index.js +1 -1
  62. package/dist/lib/openUrl/index.js.map +1 -1
  63. package/dist/lib/permission.js +5 -6
  64. package/dist/lib/permission.js.map +1 -1
  65. package/dist/lib/previewImage/index.js +3 -3
  66. package/dist/lib/previewImage/index.js.map +1 -1
  67. package/dist/lib/request/index.js +1 -1
  68. package/dist/lib/request/index.js.map +1 -1
  69. package/dist/lib/scanCode/index.js +22 -22
  70. package/dist/lib/scanCode/index.js.map +1 -1
  71. package/dist/lib/screen.js +2 -2
  72. package/dist/lib/screen.js.map +1 -1
  73. package/dist/lib/setClipboardData/index.js +2 -2
  74. package/dist/lib/setClipboardData/index.js.map +1 -1
  75. package/dist/lib/setKeepScreenOn/index.js +1 -1
  76. package/dist/lib/setKeepScreenOn/index.js.map +1 -1
  77. package/dist/lib/setStorage/index.js.map +1 -1
  78. package/dist/lib/showActionSheet/ActionSheet.js +3 -3
  79. package/dist/lib/showActionSheet/ActionSheet.js.map +1 -1
  80. package/dist/lib/showActionSheet/index.js.map +1 -1
  81. package/dist/lib/showModal/Dialog.js +3 -3
  82. package/dist/lib/showModal/Dialog.js.map +1 -1
  83. package/dist/lib/showModal/index.js.map +1 -1
  84. package/dist/lib/showModal/toast.js +6 -6
  85. package/dist/lib/showModal/toast.js.map +1 -1
  86. package/dist/lib/unsupportedApi.js +4 -2
  87. package/dist/lib/unsupportedApi.js.map +1 -1
  88. package/dist/lib/variable.js +1 -1
  89. package/dist/lib/variable.js.map +1 -1
  90. package/dist/lib/vibrate.js +1 -1
  91. package/dist/lib/vibrate.js.map +1 -1
  92. package/dist/lib/window.js.map +1 -1
  93. package/dist/setup.js +58 -0
  94. package/dist/setup.js.map +1 -0
  95. package/dist/utils/callbackManager.js.map +1 -1
  96. package/dist/utils/index.js.map +1 -1
  97. package/package.json +60 -65
  98. package/src/__tests__/__mock__/mockRNCCameraRoll.js +7 -0
  99. package/src/__tests__/__mock__/mockRNCGeolocation.js +13 -0
  100. package/src/__tests__/__snapshots__/scanCode.test.tsx.snap +154 -0
  101. package/src/__tests__/clipboard.test.ts +88 -0
  102. package/src/__tests__/deviceMotion.test.ts +37 -0
  103. package/src/__tests__/geolocation.test.ts +60 -0
  104. package/src/__tests__/interactive.test.tsx +101 -0
  105. package/src/__tests__/keyboard.test.ts +46 -0
  106. package/src/__tests__/media.test.ts +104 -0
  107. package/src/__tests__/network.test.ts +57 -0
  108. package/src/__tests__/others.test.ts +25 -0
  109. package/src/__tests__/phone.test.ts +31 -0
  110. package/src/__tests__/request.test.ts +146 -0
  111. package/src/__tests__/scanCode.test.tsx +14 -0
  112. package/src/__tests__/storage.test.ts +202 -0
  113. package/src/__tests__/system.test.ts +69 -0
  114. package/src/__tests__/vibrate.test.ts +27 -0
  115. package/src/__tests__/websocket.test.ts +170 -0
  116. package/src/api/index.ts +31 -31
  117. package/src/lib/ENV_TYPE/index.ts +1 -1
  118. package/src/lib/Mask.tsx +2 -2
  119. package/src/lib/Popup.tsx +6 -8
  120. package/src/lib/StyleSheet.ts +1 -1
  121. package/src/lib/accelerometer.ts +1 -2
  122. package/src/lib/arrayBufferToBase64/index.ts +1 -1
  123. package/src/lib/base64ToArrayBuffer/index.ts +1 -1
  124. package/src/lib/chooseMedia/index.ts +1 -1
  125. package/src/lib/clearStorage/index.ts +0 -1
  126. package/src/lib/clearStorageSync/index.ts +1 -1
  127. package/src/lib/compressImage/index.ts +0 -1
  128. package/src/lib/connectSocket/socketTask.ts +9 -7
  129. package/src/lib/createCameraContext/index.ts +4 -6
  130. package/src/lib/createInnerAudioContext/index.ts +0 -1
  131. package/src/lib/createSelectorQuery/index.ts +1 -1
  132. package/src/lib/deviceMotion.ts +3 -4
  133. package/src/lib/file.ts +8 -9
  134. package/src/lib/getClipboardData/index.ts +0 -1
  135. package/src/lib/getEnv/index.ts +1 -1
  136. package/src/lib/getFileSystemManager/index.ts +1 -1
  137. package/src/lib/getLocation/index.ts +3 -4
  138. package/src/lib/getRecorderManager/index.ts +1 -1
  139. package/src/lib/getStorage/index.ts +0 -1
  140. package/src/lib/getStorageInfo/index.ts +0 -1
  141. package/src/lib/getStorageInfoSync/index.ts +1 -1
  142. package/src/lib/getStorageSync/index.ts +1 -1
  143. package/src/lib/getSystemInfo/index.ts +2 -2
  144. package/src/lib/getSystemInfoSync/index.ts +3 -3
  145. package/src/lib/gyroscope.ts +46 -47
  146. package/src/lib/keyboard.ts +4 -5
  147. package/src/lib/location.ts +5 -6
  148. package/src/lib/makePhoneCall/index.ts +1 -2
  149. package/src/lib/media.ts +18 -21
  150. package/src/lib/network.ts +5 -5
  151. package/src/lib/offLocationChange/index.ts +1 -1
  152. package/src/lib/offUserCaptureScreen/index.ts +1 -1
  153. package/src/lib/onLocationChange/index.ts +1 -1
  154. package/src/lib/onUserCaptureScreen/index.ts +1 -1
  155. package/src/lib/onWindowResize/index.ts +2 -2
  156. package/src/lib/openUrl/index.d.ts +22 -23
  157. package/src/lib/openUrl/index.ts +1 -2
  158. package/src/lib/permission.ts +25 -33
  159. package/src/lib/previewImage/index.tsx +3 -4
  160. package/src/lib/removeStorageSync/index.ts +1 -1
  161. package/src/lib/request/index.ts +2 -2
  162. package/src/lib/scanCode/index.tsx +15 -17
  163. package/src/lib/screen.ts +0 -1
  164. package/src/lib/setClipboardData/index.ts +2 -3
  165. package/src/lib/setKeepScreenOn/index.ts +1 -2
  166. package/src/lib/setStorage/index.ts +0 -1
  167. package/src/lib/setStorageSync/index.ts +1 -1
  168. package/src/lib/showActionSheet/ActionSheet.tsx +6 -7
  169. package/src/lib/showActionSheet/index.tsx +0 -1
  170. package/src/lib/showModal/Dialog.tsx +6 -7
  171. package/src/lib/showModal/index.tsx +0 -1
  172. package/src/lib/showModal/toast.tsx +11 -12
  173. package/src/lib/startGyroscope/index.ts +1 -1
  174. package/src/lib/startLocationUpdate/index.ts +1 -1
  175. package/src/lib/unsupportedApi.ts +5 -3
  176. package/src/lib/vibrate.ts +10 -11
  177. package/src/lib/window.ts +2 -3
  178. package/src/setup.ts +64 -0
  179. package/{types → src/types}/vue/index.d.ts +3 -2
  180. package/src/utils/callbackManager.ts +5 -5
  181. package/src/utils/index.ts +4 -4
  182. /package/{types → src/types}/definition.d.ts +0 -0
@@ -0,0 +1,170 @@
1
+ import { WebSocket, Server } from 'mock-socket'
2
+ import * as connectSocket from '../lib/connectSocket'
3
+
4
+ const Taro = Object.assign({}, connectSocket)
5
+
6
+ describe('websocket', () => {
7
+ beforeEach(() => {
8
+ // @ts-ignore
9
+ global.WebSocket = WebSocket
10
+ })
11
+
12
+ test('url should be string', () => {
13
+ const success = jest.fn()
14
+ const fail = jest.fn()
15
+ const complete = jest.fn()
16
+
17
+ expect.assertions(6)
18
+
19
+ return Taro.connectSocket({
20
+ // @ts-ignore
21
+ url: {},
22
+ success,
23
+ fail,
24
+ complete
25
+ }).catch(err => {
26
+ const expectErrMsg = 'connectSocket:fail parameter error: parameter.url should be String'
27
+ expect(success.mock.calls.length).toBe(0)
28
+ expect(fail.mock.calls.length).toBe(1)
29
+ expect(fail.mock.calls[0][0]).toEqual({ errMsg: expectErrMsg })
30
+ expect(complete.mock.calls.length).toBe(1)
31
+ expect(complete.mock.calls[0][0]).toEqual({ errMsg: expectErrMsg })
32
+ expect(err.errMsg).toMatch(expectErrMsg)
33
+ })
34
+ })
35
+
36
+ test('should not keep more than 2 connection', async () => {
37
+ const success = jest.fn()
38
+ const fail = jest.fn()
39
+ const complete = jest.fn()
40
+
41
+ expect.assertions(8)
42
+
43
+ const socketTaskOne = await Taro.connectSocket({ url: 'wss://localhost:8080', success })
44
+ expect(success.mock.calls[0][0])
45
+ .toEqual({ socketTaskId: 1, socketTask: socketTaskOne, errMsg: 'connectSocket:ok' })
46
+
47
+ const socketTaskTwo = await Taro.connectSocket({ url: 'wss://localhost:8090', success })
48
+ expect(success.mock.calls[1][0])
49
+ .toEqual({ socketTaskId: 2, socketTask: socketTaskTwo, errMsg: 'connectSocket:ok' })
50
+
51
+ await Taro.connectSocket({
52
+ url: 'wss://localhost:9080',
53
+ success,
54
+ complete,
55
+ fail
56
+ }).catch(err => {
57
+ const expectErrMsg = '同时最多发起 2 个 socket 请求,更多请参考文档。'
58
+ expect(success.mock.calls.length).toBe(2)
59
+ expect(fail.mock.calls.length).toBe(1)
60
+ expect(fail.mock.calls[0][0]).toEqual({ errMsg: expectErrMsg })
61
+ expect(complete.mock.calls.length).toBe(1)
62
+ expect(complete.mock.calls[0][0]).toEqual({ errMsg: expectErrMsg })
63
+ expect(err.errMsg).toMatch(expectErrMsg)
64
+ })
65
+
66
+ socketTaskOne.close({})
67
+ socketTaskTwo.close({})
68
+ })
69
+
70
+ test('connection关闭的时候会重置总的socketTask数量', async () => {
71
+ const success = jest.fn()
72
+ const fail = jest.fn()
73
+ const complete = jest.fn()
74
+
75
+ expect.assertions(7)
76
+
77
+ const socketTaskOne = await Taro.connectSocket({ url: 'wss://localhost:8080', success })
78
+ expect(success.mock.calls.length).toBe(1)
79
+ socketTaskOne.close({})
80
+
81
+ const socketTaskTwo = await Taro.connectSocket({ url: 'wss://localhost:8090', success })
82
+ expect(success.mock.calls.length).toBe(2)
83
+
84
+ const socketTaskThree = await Taro.connectSocket({
85
+ url: 'wss://localhost:9080',
86
+ success,
87
+ complete,
88
+ fail
89
+ })
90
+ expect(success.mock.calls.length).toBe(3)
91
+ expect(fail.mock.calls.length).toBe(0)
92
+ expect(complete.mock.calls.length).toBe(1)
93
+ expect(success.mock.calls[2][0])
94
+ .toEqual(expect.objectContaining({
95
+ socketTask: socketTaskThree,
96
+ errMsg: 'connectSocket:ok'
97
+ }))
98
+ expect(complete.mock.calls[0][0])
99
+ .toEqual(expect.objectContaining({
100
+ socketTask: socketTaskThree,
101
+ errMsg: 'connectSocket:ok'
102
+ }))
103
+
104
+ socketTaskTwo.close({})
105
+ socketTaskThree.close({})
106
+ })
107
+ // @ts-ignore
108
+ test('should work basically', (done) => {
109
+ const fakeURL = 'wss://localhost:8080'
110
+ const mockServer = new Server(fakeURL)
111
+ const connected = jest.fn()
112
+ const success = jest.fn()
113
+ const complete = jest.fn()
114
+ const msg = 'hey gay!'
115
+ const msg2 = 'hey gay!gay!'
116
+
117
+ expect.assertions(11)
118
+
119
+ mockServer.on('connection', connected)
120
+
121
+ mockServer.on('message', message => {
122
+ expect(message).toMatch(msg)
123
+ mockServer.send(msg2)
124
+ })
125
+
126
+ Taro.connectSocket({
127
+ url: fakeURL,
128
+ success,
129
+ complete
130
+ }).then(socketTask => {
131
+
132
+ const socketTaskSend = jest.spyOn(socketTask.ws, 'send')
133
+ const socketTaskClose = jest.spyOn(socketTask.ws, 'close')
134
+ const closeCode = 100
135
+ const closeReason = 'hey'
136
+
137
+ socketTask.onOpen(() => {
138
+ socketTask.send({
139
+ data: msg,
140
+ success: (res) => {
141
+ expect(socketTaskSend).toHaveBeenCalled()
142
+ expect(res.errMsg).toMatch('sendSocketMessage:ok')
143
+ },
144
+ })
145
+ })
146
+
147
+ socketTask.onMessage(res => {
148
+ expect(res.data).toMatch(msg2)
149
+ socketTask.close({
150
+ code: closeCode,
151
+ reason: closeReason,
152
+ success: (res) => {
153
+ expect(socketTaskClose).toHaveBeenCalled()
154
+ expect(res.errMsg).toMatch('sendSocketMessage:ok')
155
+ },
156
+ })
157
+ })
158
+
159
+ socketTask.onClose(({ code, reason }) => {
160
+ const expectMsg = 'connectSocket:ok'
161
+ expect(connected.mock.calls.length).toBe(1)
162
+ expect(success.mock.calls[0][0].errMsg).toMatch(expectMsg)
163
+ expect(complete.mock.calls[0][0].errMsg).toMatch(expectMsg)
164
+ expect(code).toBe(closeCode)
165
+ expect(reason).toBe(closeReason)
166
+ done()
167
+ })
168
+ })
169
+ })
170
+ })
package/src/api/index.ts CHANGED
@@ -1,44 +1,44 @@
1
1
  export {
2
2
  Current,
3
+ getCurrentInstance,
4
+ useDidShow,
5
+ useDidHide,
6
+ useLoad,
7
+ useReady,
8
+ useUnload,
9
+ useLaunch,
10
+ usePageNotFound,
11
+ useRouter,
12
+ usePullDownRefresh,
13
+ useReachBottom,
14
+ usePageScroll,
15
+ useTabItemTap,
16
+ useResize,
3
17
  eventCenter,
4
18
  Events,
5
- getApp,
6
- getCurrentInstance,
7
- getCurrentPages,
8
- hideNavigationBarLoading,
9
- hideTabBar,
10
- hideTabBarRedDot,
11
- navigateBack,
12
19
  navigateTo,
13
- pageScrollTo,
14
- pxTransform,
15
20
  redirectTo,
21
+ navigateBack,
22
+ switchTab,
16
23
  reLaunch,
17
- removeTabBarBadge,
18
- setBackgroundColor,
19
- setBackgroundTextStyle,
20
- setNavigationBarColor,
21
- setNavigationBarTitle,
24
+ showTabBar,
25
+ hideTabBar,
26
+ showTabBarRedDot,
27
+ hideTabBarRedDot,
22
28
  setTabBarBadge,
29
+ removeTabBarBadge,
23
30
  setTabBarItem,
24
- setTabBarStyle,
31
+ setNavigationBarTitle,
32
+ setNavigationBarColor,
25
33
  showNavigationBarLoading,
26
- showTabBar,
27
- showTabBarRedDot,
34
+ hideNavigationBarLoading,
35
+ setTabBarStyle,
36
+ getApp,
37
+ pxTransform,
28
38
  startPullDownRefresh,
29
39
  stopPullDownRefresh,
30
- switchTab,
31
- useDidHide,
32
- useDidShow,
33
- useLaunch,
34
- useLoad,
35
- usePageNotFound,
36
- usePageScroll,
37
- usePullDownRefresh,
38
- useReachBottom,
39
- useReady,
40
- useResize,
41
- useRouter,
42
- useTabItemTap,
43
- useUnload
40
+ pageScrollTo,
41
+ setBackgroundColor,
42
+ setBackgroundTextStyle,
43
+ getCurrentPages
44
44
  } from '@tarojs/runtime-rn'
@@ -9,4 +9,4 @@ export const ENV_TYPE = {
9
9
  RN: 'RN',
10
10
  HARMONY: 'HARMONY',
11
11
  QUICKAPP: 'QUICKAPP'
12
- }
12
+ }
package/src/lib/Mask.tsx CHANGED
@@ -1,7 +1,7 @@
1
- import { ViewPropTypes } from 'deprecated-react-native-prop-types'
2
- import PropTypes from 'prop-types'
3
1
  import React from 'react'
2
+ import PropTypes from 'prop-types'
4
3
  import { StyleSheet, TouchableWithoutFeedback, View } from 'react-native'
4
+ import { ViewPropTypes } from 'deprecated-react-native-prop-types'
5
5
 
6
6
  const styles = StyleSheet.create({
7
7
  mask: {
package/src/lib/Popup.tsx CHANGED
@@ -1,8 +1,8 @@
1
- import { ViewPropTypes } from 'deprecated-react-native-prop-types'
2
- import PropTypes from 'prop-types'
3
1
  import React, { Component } from 'react'
4
- import { Animated, Dimensions, Easing, Modal, StyleSheet, View } from 'react-native'
5
2
 
3
+ import PropTypes from 'prop-types'
4
+ import { Modal, View, StyleSheet, Dimensions, Animated, Easing } from 'react-native'
5
+ import { ViewPropTypes } from 'deprecated-react-native-prop-types'
6
6
  import { Mask } from './Mask'
7
7
 
8
8
  const { width, height } = Dimensions.get('window')
@@ -17,7 +17,7 @@ const styles = StyleSheet.create({
17
17
  })
18
18
 
19
19
  interface Props {
20
- visible?: boolean
20
+ visible?: boolean;
21
21
  }
22
22
 
23
23
  class Popup extends Component<any, any> {
@@ -53,11 +53,9 @@ class Popup extends Component<any, any> {
53
53
  }).start(() => this.setState({ visible: false }))
54
54
  }
55
55
  }
56
-
57
56
  componentWillUnmount (): void {
58
- this.timer && clearTimeout(this.timer)
57
+ this.timer && clearTimeout(this.timer);
59
58
  }
60
-
61
59
  handleLayout (): void {
62
60
  this.timer = setTimeout(() => {
63
61
  this.popup?.measure((_x, _y, _w, h) => {
@@ -71,7 +69,7 @@ class Popup extends Component<any, any> {
71
69
  }).start()
72
70
  })
73
71
  })
74
- },) // 处理鸿蒙系统handleLayout 回调 this.popup为空的情况
72
+ },); // 处理鸿蒙系统handleLayout 回调 this.popup为空的情况
75
73
  }
76
74
 
77
75
  render (): JSX.Element {
@@ -1,4 +1,4 @@
1
- import { Platform, StyleSheet } from 'react-native'
1
+ import { StyleSheet, Platform } from 'react-native'
2
2
 
3
3
  interface Styles {
4
4
  [propName: string]: any
@@ -1,5 +1,4 @@
1
1
  import { Accelerometer } from 'expo-sensors'
2
-
3
2
  import { createCallbackManager, errorHandler, successHandler } from '../utils'
4
3
 
5
4
  const _cbManager = createCallbackManager()
@@ -69,8 +68,8 @@ function stopAccelerometer(opts: Taro.stopAccelerometer.Option = {}): Promise<Ta
69
68
  }
70
69
 
71
70
  export {
72
- offAccelerometerChange,
73
71
  onAccelerometerChange,
72
+ offAccelerometerChange,
74
73
  startAccelerometer,
75
74
  stopAccelerometer
76
75
  }
@@ -3,4 +3,4 @@ import { fromByteArray } from 'base64-js'
3
3
  export function arrayBufferToBase64(arrayBuffer: ArrayBuffer): string {
4
4
  const buffer = new Uint8Array(arrayBuffer)
5
5
  return fromByteArray(buffer)
6
- }
6
+ }
@@ -2,4 +2,4 @@ import { toByteArray } from 'base64-js'
2
2
 
3
3
  export function base64ToArrayBuffer(base64: string): ArrayBuffer {
4
4
  return toByteArray(base64)
5
- }
5
+ }
@@ -12,4 +12,4 @@ export function chooseMedia (opts: Taro.chooseMedia.Option): Promise<any> {
12
12
  } else {
13
13
  return _chooseMedia(opts, MEDIA_TYPE.All)
14
14
  }
15
- }
15
+ }
@@ -1,5 +1,4 @@
1
1
  import AsyncStorage from '@react-native-async-storage/async-storage'
2
-
3
2
  import { errorHandler, successHandler } from '../../utils'
4
3
 
5
4
  export async function clearStorage(option: Taro.clearStorage.Option = {}): Promise<TaroGeneral.CallbackResult> {
@@ -1 +1 @@
1
- export { clearStorageSync } from '../unsupportedApi'
1
+ export { clearStorageSync } from '../unsupportedApi'
@@ -1,6 +1,5 @@
1
1
  import ImageResizer, { ResizeFormat } from '@bam.tech/react-native-image-resizer'
2
2
  import { Image } from 'react-native'
3
-
4
3
  import { errorHandler, successHandler } from '../../utils'
5
4
 
6
5
  /**
@@ -1,11 +1,13 @@
1
- class SocketTask {
2
- ws: WebSocket
3
- _destroyWhenClose: () => void
1
+ interface SocketTask {
2
+ ws: WebSocket;
3
+ _destroyWhenClose: () => void;
4
4
  closeDetail: {
5
- code: number
6
- reason: string
7
- }
5
+ code: number;
6
+ reason: string;
7
+ };
8
+ }
8
9
 
10
+ class SocketTask {
9
11
  constructor (url: string, protocols: string[] | undefined) {
10
12
  if (protocols) {
11
13
  // eslint-disable-next-line no-undef
@@ -103,7 +105,7 @@ class SocketTask {
103
105
  onError (func?: Taro.SocketTask.OnErrorCallback): void {
104
106
  this.ws.onerror = () => {
105
107
  func && func({
106
- errMsg: 'There was an error with your websocket.',
108
+ errMsg: "There was an error with your websocket.",
107
109
  })
108
110
  }
109
111
  }
@@ -1,7 +1,5 @@
1
- import { Camera } from 'expo-camera'
2
-
3
1
  import { errorHandler, successHandler } from '../../utils'
4
-
2
+ import { requestCameraPermissionsAsync, requestMicrophonePermissionsAsync } from 'expo-camera'
5
3
  const globalAny: any = global
6
4
 
7
5
  class CameraContext {
@@ -16,8 +14,8 @@ class CameraContext {
16
14
  * 开始录像
17
15
  */
18
16
  startRecord = (option: Taro.CameraContext.StartRecordOption) => {
19
- Promise.all([Camera.requestCameraPermissionsAsync(), Camera.requestMicrophonePermissionsAsync()]).then(([cameraPermission, microphonePermission]) => {
20
- if (cameraPermission.granted && microphonePermission.granted) {
17
+ Promise.all([requestCameraPermissionsAsync(), requestMicrophonePermissionsAsync()]).then(([cameraPermission, microphonePermission]) => {
18
+ if(cameraPermission.granted && microphonePermission.granted) {
21
19
  this.cameraRef?.recordAsync().then((res) => {
22
20
  const { uri } = res
23
21
  const result = {
@@ -78,7 +76,7 @@ class CameraContext {
78
76
  break
79
77
  }
80
78
  try {
81
- const { granted } = await Camera.requestCameraPermissionsAsync()
79
+ const { granted } = await requestCameraPermissionsAsync()
82
80
  if (granted) {
83
81
  if (this.cameraRef?.takePictureAsync) {
84
82
  const { uri } = await this.cameraRef.takePictureAsync({ quality: _quality })
@@ -1,5 +1,4 @@
1
1
  import { Audio } from 'expo-av'
2
-
3
2
  import { isUrl } from '../../utils'
4
3
 
5
4
  /**
@@ -1 +1 @@
1
- export { createSelectorQuery } from '../unsupportedApi'
1
+ export { createSelectorQuery } from '../unsupportedApi'
@@ -1,7 +1,6 @@
1
1
  import Taro from '@tarojs/taro'
2
2
  import { DeviceMotion } from 'expo-sensors'
3
-
4
- import { createCallbackManager, errorHandler, successHandler } from '../utils'
3
+ import { createCallbackManager, successHandler, errorHandler } from '../utils'
5
4
 
6
5
  const _cbManager = createCallbackManager()
7
6
  let _listener: any
@@ -45,7 +44,7 @@ function startDeviceMotionListening (object: Taro.startDeviceMotionListening.Opt
45
44
  _cbManager.trigger(rotation)
46
45
  })
47
46
  DeviceMotion.setUpdateInterval(intervalMap[interval] || intervalMap.normal)
48
-
47
+
49
48
  return successHandler(success, complete)(res)
50
49
  } catch (error) {
51
50
  res.errMsg = 'startDeviceMotionListening:fail'
@@ -72,8 +71,8 @@ function stopDeviceMotionListening (object: Taro.stopDeviceMotionListening.Optio
72
71
  }
73
72
 
74
73
  export {
75
- offDeviceMotionChange,
76
74
  onDeviceMotionChange,
75
+ offDeviceMotionChange,
77
76
  startDeviceMotionListening,
78
77
  stopDeviceMotionListening
79
78
  }
package/src/lib/file.ts CHANGED
@@ -1,15 +1,14 @@
1
1
  import * as FileSystem from 'expo-file-system'
2
2
  import { Platform } from 'react-native'
3
-
4
- import { errorHandler, shouldBeObject, successHandler } from '../utils'
3
+ import { shouldBeObject, successHandler, errorHandler } from '../utils'
5
4
 
6
5
  interface Func {
7
6
  (arg: any): void
8
7
  }
9
8
 
10
9
  interface ExtPromise<T> extends Promise<T> {
11
- onProgressUpdateCb?: Func
12
- onProgressUpdate?: Func
10
+ onProgressUpdateCb?: Func,
11
+ onProgressUpdate?: Func,
13
12
  abort?: Func
14
13
  }
15
14
 
@@ -340,10 +339,10 @@ async function getFileInfo (opts: Taro.getFileInfo.Option): Promise<Taro.getFile
340
339
 
341
340
  export {
342
341
  downloadFile,
343
- getFileInfo,
344
- getSavedFileInfo,
345
- getSavedFileList,
346
- removeSavedFile,
342
+ uploadFile,
347
343
  saveFile,
348
- uploadFile
344
+ removeSavedFile,
345
+ getSavedFileList,
346
+ getSavedFileInfo,
347
+ getFileInfo
349
348
  }
@@ -1,5 +1,4 @@
1
1
  import Clipboard from '@react-native-clipboard/clipboard'
2
-
3
2
  import { errorHandler } from '../../utils'
4
3
 
5
4
  export function getClipboardData (opts: Taro.getClipboardData.Option = {}): Promise<Taro.getClipboardData.Promised> {
@@ -2,4 +2,4 @@ import { ENV_TYPE } from '../ENV_TYPE'
2
2
 
3
3
  export function getEnv(): string {
4
4
  return ENV_TYPE.RN
5
- }
5
+ }
@@ -1 +1 @@
1
- export { getFileSystemManager } from '../unsupportedApi'
1
+ export { getFileSystemManager } from '../unsupportedApi'
@@ -1,19 +1,18 @@
1
1
  import Geolocation from '@react-native-community/geolocation'
2
-
3
2
  import { errorHandler } from '../../utils'
4
3
 
5
4
  export async function getLocation(opts: Taro.getLocation.Option = {}): Promise<Taro.getLocation.SuccessCallbackResult> {
6
5
  const { isHighAccuracy = false, highAccuracyExpireTime = 3000, success, fail, complete } = opts
7
6
  const requestAuthorization = () => {
8
7
  return new Promise((resolve, reject) => {
9
- Geolocation.requestAuthorization(() => resolve({ granted: true }), (err) => reject(err))
8
+ Geolocation.requestAuthorization(()=>resolve({granted: true}), (err)=>reject(err))
10
9
  })
11
10
  }
12
-
11
+
13
12
  try {
14
13
  // @ts-ignore
15
14
  // todo: fix types
16
- const { granted } = await requestAuthorization()
15
+ const {granted} = await requestAuthorization()
17
16
  if (!granted) {
18
17
  const res = { errMsg: 'Permissions denied!' }
19
18
  return errorHandler(fail, complete)(res)
@@ -81,7 +81,7 @@ class RecorderManager {
81
81
  playsInSilentModeIOS: true,
82
82
  staysActiveInBackground: false,
83
83
  shouldDuckAndroid: true,
84
- interruptionModeAndroid: 1, // InterruptionModeAndroid.DoNotMix
84
+ interruptionModeAndroid: 1, //InterruptionModeAndroid.DoNotMix
85
85
  playThroughEarpieceAndroid: true
86
86
  } as any)
87
87
 
@@ -1,5 +1,4 @@
1
1
  import AsyncStorage from '@react-native-async-storage/async-storage'
2
-
3
2
  import { errorHandler, successHandler } from '../../utils'
4
3
 
5
4
  export async function getStorage(option: Taro.getStorage.Option<any>): Promise<Taro.getStorage.SuccessCallbackResult<any>> {
@@ -1,5 +1,4 @@
1
1
  import AsyncStorage from '@react-native-async-storage/async-storage'
2
-
3
2
  import { errorHandler, successHandler } from '../../utils'
4
3
 
5
4
  async function getStorageCurrentSize() {
@@ -1 +1 @@
1
- export { getStorageInfoSync } from '../unsupportedApi'
1
+ export { getStorageInfoSync } from '../unsupportedApi'
@@ -1 +1 @@
1
- export { getStorageSync } from '../unsupportedApi'
1
+ export { getStorageSync } from '../unsupportedApi'
@@ -1,7 +1,7 @@
1
- import { errorHandler, successHandler } from '../../utils'
2
1
  import { getSystemInfoSync } from '../getSystemInfoSync'
2
+ import { successHandler, errorHandler } from '../../utils'
3
3
 
4
- export function getSystemInfo(opts: Taro.getSystemInfo.Option = {}): Promise<Taro.getSystemInfo.Result> {
4
+ export function getSystemInfo(opts: Taro.getSystemInfo.Option = {}): Promise<Taro.getSystemInfo.Result> {
5
5
  const { success, fail, complete }: any = opts
6
6
  try {
7
7
  const res = {
@@ -1,11 +1,11 @@
1
1
  import {
2
+ Platform,
2
3
  Dimensions,
3
4
  PixelRatio,
4
- Platform,
5
5
  StatusBar
6
6
  } from 'react-native'
7
- import DeviceInfo from 'react-native-device-info'
8
7
  import { initialWindowMetrics } from 'react-native-safe-area-context'
8
+ import DeviceInfo from 'react-native-device-info'
9
9
 
10
10
  export function getSystemInfoSync(): Taro.getSystemInfoSync.Result {
11
11
  const res: any = {}
@@ -28,7 +28,7 @@ export function getSystemInfoSync(): Taro.getSystemInfoSync.Result {
28
28
  let { top = 0, bottom = 0 } = initialWindowMetrics?.insets || {}
29
29
  // NOTE:android 在沉浸式切换时,有几率top值为0。
30
30
  // https://github.com/th3rdwave/react-native-safe-area-context/issues/364
31
- if (Platform.OS === 'android') { top = StatusBar.currentHeight || 0 }
31
+ if(Platform.OS === 'android') { top = StatusBar.currentHeight || 0; }
32
32
 
33
33
  try {
34
34
  const W = Math.min(screenWidth, screenHeight)