@tarojs/taro-rn 3.5.0-alpha.13 → 3.5.0-alpha.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/Mask.js +2 -1
- package/dist/lib/Mask.js.map +1 -1
- package/dist/lib/Popup.js +2 -1
- package/dist/lib/Popup.js.map +1 -1
- package/dist/lib/createCameraContext/index.js +38 -28
- package/dist/lib/createCameraContext/index.js.map +1 -1
- package/dist/lib/getLocation/index.js +3 -4
- package/dist/lib/getLocation/index.js.map +1 -1
- package/dist/lib/getRecorderManager/index.js +7 -11
- package/dist/lib/getRecorderManager/index.js.map +1 -1
- package/dist/lib/media.js +5 -6
- package/dist/lib/media.js.map +1 -1
- package/dist/lib/permission.js +18 -17
- package/dist/lib/permission.js.map +1 -1
- package/dist/lib/request/index.js +1 -1
- package/dist/lib/request/index.js.map +1 -1
- package/dist/lib/scanCode/index.js +4 -6
- package/dist/lib/scanCode/index.js.map +1 -1
- package/dist/lib/showActionSheet/ActionSheet.js +2 -1
- package/dist/lib/showActionSheet/ActionSheet.js.map +1 -1
- package/dist/lib/showModal/Dialog.js +4 -3
- package/dist/lib/showModal/Dialog.js.map +1 -1
- package/dist/setup.js +18 -2
- package/dist/setup.js.map +1 -1
- package/package.json +48 -47
- package/src/__tests__/__snapshots__/{scanCode.test.js.snap → scanCode.test.tsx.snap} +20 -2
- package/src/__tests__/{clipboard.test.js → clipboard.test.ts} +1 -0
- package/src/__tests__/{deviceMotion.test.js → deviceMotion.test.ts} +0 -0
- package/src/__tests__/{geolocation.test.js → geolocation.test.ts} +10 -11
- package/src/__tests__/{interactive.test.js → interactive.test.tsx} +0 -0
- package/src/__tests__/{keyboard.test.js → keyboard.test.ts} +0 -0
- package/src/__tests__/{media.test.js → media.test.ts} +2 -0
- package/src/__tests__/{network.test.js → network.test.ts} +0 -2
- package/src/__tests__/{others.test.js → others.test.ts} +0 -0
- package/src/__tests__/{phone.test.js → phone.test.ts} +0 -0
- package/src/__tests__/{request.test.js → request.test.ts} +6 -1
- package/src/__tests__/{scanCode.test.js → scanCode.test.tsx} +1 -0
- package/src/__tests__/{storage.test.js → storage.test.ts} +9 -5
- package/src/__tests__/{system.test.js → system.test.ts} +0 -0
- package/src/__tests__/{vibrate.test.js → vibrate.test.ts} +0 -0
- package/src/__tests__/{websocket.test.js → websocket.test.ts} +8 -6
- package/src/lib/Mask.tsx +2 -1
- package/src/lib/Popup.tsx +2 -1
- package/src/lib/createCameraContext/index.ts +30 -21
- package/src/lib/getLocation/index.ts +3 -4
- package/src/lib/getRecorderManager/index.ts +7 -11
- package/src/lib/media.ts +5 -6
- package/src/lib/permission.ts +21 -17
- package/src/lib/request/index.ts +1 -1
- package/src/lib/scanCode/index.tsx +3 -6
- package/src/lib/showActionSheet/ActionSheet.tsx +2 -2
- package/src/lib/showModal/Dialog.tsx +4 -4
- package/src/setup.ts +22 -3
- package/types/overlay.d.ts +9 -0
- package/dist/utils/premissions.js +0 -17
- package/dist/utils/premissions.js.map +0 -1
- package/src/__tests__/__mock__/mockExpoPermissions.js +0 -8
- package/src/utils/premissions.ts +0 -6
package/dist/setup.js
CHANGED
|
@@ -39,7 +39,6 @@ jest.doMock('react-native', () => {
|
|
|
39
39
|
});
|
|
40
40
|
jest.doMock('expo-modules-core', () => {
|
|
41
41
|
const unimodules = jest.requireActual('expo-modules-core');
|
|
42
|
-
const permisson = jest.requireActual('./__tests__/__mock__/mockExpoPermissions');
|
|
43
42
|
const { NativeModulesProxy } = unimodules;
|
|
44
43
|
NativeModulesProxy.ExpoLocation = {
|
|
45
44
|
getCurrentPositionAsync: jest.fn(() => Promise.resolve({
|
|
@@ -52,7 +51,24 @@ jest.doMock('expo-modules-core', () => {
|
|
|
52
51
|
}
|
|
53
52
|
}))
|
|
54
53
|
};
|
|
55
|
-
NativeModulesProxy.ExpoPermissions = permisson;
|
|
56
54
|
return unimodules;
|
|
57
55
|
});
|
|
56
|
+
const grantedPromise = jest.fn(() => Promise.resolve({
|
|
57
|
+
granted: true
|
|
58
|
+
}));
|
|
59
|
+
jest.doMock('expo-image-picker', () => {
|
|
60
|
+
const expoImagePicker = jest.requireActual('expo-image-picker');
|
|
61
|
+
expoImagePicker.requestMediaLibraryPermissionsAsync = grantedPromise;
|
|
62
|
+
return expoImagePicker;
|
|
63
|
+
});
|
|
64
|
+
jest.doMock('expo-location', () => {
|
|
65
|
+
const expoLocation = jest.requireActual('expo-location');
|
|
66
|
+
expoLocation.requestForegroundPermissionsAsync = grantedPromise;
|
|
67
|
+
return expoLocation;
|
|
68
|
+
});
|
|
69
|
+
jest.doMock('expo-barcode-scanner', () => {
|
|
70
|
+
const expoBarcodeSacnner = jest.requireActual('expo-barcode-scanner');
|
|
71
|
+
expoBarcodeSacnner.requestPermissionsAsync = grantedPromise;
|
|
72
|
+
return expoBarcodeSacnner;
|
|
73
|
+
});
|
|
58
74
|
//# sourceMappingURL=setup.js.map
|
package/dist/setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACpC,OAAO,4CAA4C,CAAA;AACnD,OAAO,cAAc,MAAM,sDAAsD,CAAA;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,mBAAmB,MAAM,sEAAsE,CAAA;AACtG,OAAO,iBAAiB,MAAM,6DAA6D,CAAA;AAE3F,IAAI,CAAC,MAAM,CAAC,iCAAiC,EAAE,GAAG,EAAE,CAAC,iCAAM,cAAc,KAAE,gBAAgB,IAAG,CAAC,CAAA;AAC/F,IAAI,CAAC,MAAM,CAAC,2CAA2C,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,CAAA;AACnF,IAAI,CAAC,MAAM,CAAC,0BAA0B,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAA;AAEhE,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,GAAG,EAAE;IAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAQ,CAAA;IAE7D,sFAAsF;IACtF,MAAM,SAAS,GAAI,IAAI,CAAC,aAAa,CAAC,kCAAkC,CAAS,CAAC,OAAO,CAAA;IACzF,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,WAAW,EAAE;QAC9C,UAAU,EAAE,KAAK;QACjB,YAAY,EAAE,KAAK;QACnB,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,SAAS;KACjB,CAAC,CAAA;IAEF,wEAAwE;IACxE,MAAM,aAAa,GAAI,IAAI,CAAC,aAAa,CAAC,wCAAwC,CAAS,CAAC,OAAO,CAAA;IACnG,MAAM,aAAa,GAAI,IAAI,CAAC,aAAa,CAAC,oCAAoC,CAAS,CAAC,OAAO,CAAA;IAC/F,MAAM,cAAc,GAAI,IAAI,CAAC,aAAa,CAAC,yCAAyC,CAAS,CAAC,OAAO,CAAA;IACrG,WAAW,CAAC,aAAa,CAAC,aAAa,GAAG,aAAa,CAAA;IACvD,WAAW,CAAC,aAAa,CAAC,YAAY,GAAG,IAAI,aAAa,EAAE,CAAA;IAC5D,WAAW,CAAC,aAAa,CAAC,cAAc,GAAG,cAAc,CAAA;IACzD,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,aAAa,EAAE,aAAa,EAAE;QAC9D,YAAY,EAAE,IAAI;QAClB,UAAU,EAAE,IAAI;QAChB,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YACV,aAAa,EAAE,IAAI,CAAC,EAAE,EAAE;YACxB,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,OAAY,EAAE,EAAE;gBACtC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;gBACpD,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;YACpC,CAAC,CAAC;SACH,CAAC;KACH,CAAC,CAAA;IACF,OAAO,WAAW,CAAA;AACpB,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACpC,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAQ,CAAA;IACjE,MAAM,
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tarojs/taro-rn",
|
|
3
|
-
"version": "3.5.0-alpha.
|
|
3
|
+
"version": "3.5.0-alpha.16",
|
|
4
4
|
"description": "Taro RN framework",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"typings": "types/index.d.ts",
|
|
@@ -11,17 +11,6 @@
|
|
|
11
11
|
"apiList.js",
|
|
12
12
|
"libList.js"
|
|
13
13
|
],
|
|
14
|
-
"scripts": {
|
|
15
|
-
"assets": "cpy 'src/**/*.png' '!src/__tests__/*' dist",
|
|
16
|
-
"build": "rimraf ./dist && tsc && yarn assets && yarn script",
|
|
17
|
-
"dev": "yarn assets && tsc --watch",
|
|
18
|
-
"lint": "eslint .",
|
|
19
|
-
"test": "jest --silent",
|
|
20
|
-
"test:dev": "jest --watch",
|
|
21
|
-
"test:ci": "jest -i --silent --coverage false",
|
|
22
|
-
"test:coverage": "jest --coverage",
|
|
23
|
-
"script": "node ./script"
|
|
24
|
-
},
|
|
25
14
|
"repository": {
|
|
26
15
|
"type": "git",
|
|
27
16
|
"url": "git+https://github.com/NervJS/taro.git"
|
|
@@ -32,62 +21,74 @@
|
|
|
32
21
|
"author": "O2Team",
|
|
33
22
|
"license": "MIT",
|
|
34
23
|
"dependencies": {
|
|
35
|
-
"@react-native-async-storage/async-storage": "~1.
|
|
24
|
+
"@react-native-async-storage/async-storage": "~1.17.7",
|
|
36
25
|
"@react-native-community/cameraroll": "~4.1.2",
|
|
37
26
|
"@react-native-community/clipboard": "~1.5.1",
|
|
38
|
-
"@react-native-community/geolocation": "~2.0
|
|
39
|
-
"@react-native-community/netinfo": "~
|
|
40
|
-
"@tarojs/runtime-rn": "3.5.0-alpha.
|
|
27
|
+
"@react-native-community/geolocation": "~2.1.0",
|
|
28
|
+
"@react-native-community/netinfo": "~9.3.0",
|
|
29
|
+
"@tarojs/runtime-rn": "3.5.0-alpha.16",
|
|
41
30
|
"babel-preset-expo": "~9.0.2",
|
|
42
31
|
"base64-js": "^1.3.0",
|
|
43
|
-
"
|
|
44
|
-
"expo-
|
|
45
|
-
"expo-
|
|
46
|
-
"expo-
|
|
47
|
-
"expo-
|
|
32
|
+
"deprecated-react-native-prop-types": "^2.3.0",
|
|
33
|
+
"expo-av": "~12.0.2",
|
|
34
|
+
"expo-barcode-scanner": "~11.4.0",
|
|
35
|
+
"expo-brightness": "~10.3.0",
|
|
36
|
+
"expo-camera": "~12.3.0",
|
|
37
|
+
"expo-file-system": "~14.1.0",
|
|
48
38
|
"expo-image-picker": "~13.1.1",
|
|
49
|
-
"expo-keep-awake": "~10.
|
|
50
|
-
"expo-location": "~14.0
|
|
51
|
-
"expo-modules-core": "~0.
|
|
52
|
-
"expo-
|
|
53
|
-
"expo-sensors": "~11.1.1",
|
|
39
|
+
"expo-keep-awake": "~10.2.0",
|
|
40
|
+
"expo-location": "~14.3.0",
|
|
41
|
+
"expo-modules-core": "~0.11.3",
|
|
42
|
+
"expo-sensors": "~11.4.0",
|
|
54
43
|
"nullthrows": "^1.1.1",
|
|
55
|
-
"
|
|
44
|
+
"prop-types": "^15.8.1",
|
|
45
|
+
"react-native-device-info": "~10.0.2",
|
|
56
46
|
"react-native-image-resizer": "~1.4.5",
|
|
57
47
|
"react-native-image-zoom-viewer": "^3.0.1",
|
|
58
48
|
"react-native-root-siblings": "^4.1.1",
|
|
59
49
|
"react-native-root-toast": "^3.0.1",
|
|
60
|
-
"react-native-safe-area-context": "~3.
|
|
50
|
+
"react-native-safe-area-context": "~4.3.1",
|
|
61
51
|
"react-native-stylekit": "^1.0.0",
|
|
62
52
|
"react-native-syan-image-picker": "0.5.3"
|
|
63
53
|
},
|
|
64
54
|
"devDependencies": {
|
|
65
|
-
"@
|
|
55
|
+
"@types/jest": "^27.4.1",
|
|
66
56
|
"@types/react": "^17.0.0",
|
|
67
|
-
"@types/react-native": "0.67.
|
|
57
|
+
"@types/react-native": "^0.67.7",
|
|
68
58
|
"fbjs-scripts": "^3.0.1",
|
|
69
|
-
"react-native": "^0.67.
|
|
59
|
+
"metro-react-native-babel-preset": "^0.67.0",
|
|
60
|
+
"react-native": "^0.68.2"
|
|
70
61
|
},
|
|
71
62
|
"peerDependencies": {
|
|
72
|
-
"@react-native-async-storage/async-storage": "~1.
|
|
63
|
+
"@react-native-async-storage/async-storage": "~1.17.7",
|
|
73
64
|
"@react-native-community/cameraroll": "~4.1.2",
|
|
74
65
|
"@react-native-community/clipboard": "~1.5.1",
|
|
75
|
-
"@react-native-community/geolocation": "~2.0
|
|
76
|
-
"@react-native-community/netinfo": "~
|
|
77
|
-
"expo-av": "~
|
|
78
|
-
"expo-barcode-scanner": "~11.
|
|
79
|
-
"expo-brightness": "~10.
|
|
80
|
-
"expo-camera": "~12.
|
|
81
|
-
"expo-file-system": "~14.
|
|
66
|
+
"@react-native-community/geolocation": "~2.1.0",
|
|
67
|
+
"@react-native-community/netinfo": "~9.3.0",
|
|
68
|
+
"expo-av": "~12.0.2",
|
|
69
|
+
"expo-barcode-scanner": "~11.4.0",
|
|
70
|
+
"expo-brightness": "~10.3.0",
|
|
71
|
+
"expo-camera": "~12.3.0",
|
|
72
|
+
"expo-file-system": "~14.1.0",
|
|
82
73
|
"expo-image-picker": "~13.1.1",
|
|
83
|
-
"expo-keep-awake": "~10.
|
|
84
|
-
"expo-
|
|
85
|
-
"expo-
|
|
86
|
-
"expo-sensors": "~11.
|
|
87
|
-
"react-native-device-info": "~
|
|
74
|
+
"expo-keep-awake": "~10.2.0",
|
|
75
|
+
"expo-location": "~14.3.0",
|
|
76
|
+
"expo-modules-core": "~0.11.3",
|
|
77
|
+
"expo-sensors": "~11.4.0",
|
|
78
|
+
"react-native-device-info": "~10.0.2",
|
|
88
79
|
"react-native-image-resizer": "~1.4.5",
|
|
89
|
-
"react-native-safe-area-context": "~3.
|
|
80
|
+
"react-native-safe-area-context": "~4.3.1",
|
|
90
81
|
"react-native-syan-image-picker": "0.5.3"
|
|
91
82
|
},
|
|
92
|
-
"
|
|
93
|
-
|
|
83
|
+
"scripts": {
|
|
84
|
+
"assets": "cpy 'src/**/*.png' '!src/__tests__/*' dist",
|
|
85
|
+
"build": "rimraf ./dist && tsc && pnpm run assets && pnpm run script",
|
|
86
|
+
"dev": "pnpm run assets && tsc --watch",
|
|
87
|
+
"lint": "eslint .",
|
|
88
|
+
"test": "jest --silent",
|
|
89
|
+
"test:dev": "jest --watch",
|
|
90
|
+
"test:ci": "jest -i --silent --coverage false",
|
|
91
|
+
"test:coverage": "jest --coverage",
|
|
92
|
+
"script": "node ./script"
|
|
93
|
+
}
|
|
94
|
+
}
|
|
@@ -64,7 +64,16 @@ exports[`scanCode should render scanCode success 1`] = `
|
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
>
|
|
67
|
-
<RNCSafeAreaView
|
|
67
|
+
<RNCSafeAreaView
|
|
68
|
+
edges={
|
|
69
|
+
Array [
|
|
70
|
+
"bottom",
|
|
71
|
+
"left",
|
|
72
|
+
"right",
|
|
73
|
+
"top",
|
|
74
|
+
]
|
|
75
|
+
}
|
|
76
|
+
>
|
|
68
77
|
<Image
|
|
69
78
|
source={1}
|
|
70
79
|
style={
|
|
@@ -97,7 +106,16 @@ exports[`scanCode should render scanCode success 1`] = `
|
|
|
97
106
|
}
|
|
98
107
|
}
|
|
99
108
|
>
|
|
100
|
-
<RNCSafeAreaView
|
|
109
|
+
<RNCSafeAreaView
|
|
110
|
+
edges={
|
|
111
|
+
Array [
|
|
112
|
+
"bottom",
|
|
113
|
+
"left",
|
|
114
|
+
"right",
|
|
115
|
+
"top",
|
|
116
|
+
]
|
|
117
|
+
}
|
|
118
|
+
>
|
|
101
119
|
<Image
|
|
102
120
|
source={1}
|
|
103
121
|
style={
|
|
File without changes
|
|
@@ -38,22 +38,21 @@ describe('location', () => {
|
|
|
38
38
|
const fail = jest.fn()
|
|
39
39
|
const complete = jest.fn()
|
|
40
40
|
|
|
41
|
-
const expectData = {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
41
|
+
// const expectData = {
|
|
42
|
+
// latitude: expect.any(Number),
|
|
43
|
+
// longitude: expect.any(Number),
|
|
44
|
+
// speed: expect.any(Number),
|
|
45
|
+
// accuracy: expect.any(Number),
|
|
46
|
+
// altitude: expect.any(Number),
|
|
47
|
+
// verticalAccuracy: expect.any(Number),
|
|
48
|
+
// horizontalAccuracy: expect.any(Number),
|
|
49
|
+
// }
|
|
50
50
|
|
|
51
51
|
Taro.getLocation({
|
|
52
52
|
success,
|
|
53
53
|
fail,
|
|
54
54
|
complete
|
|
55
|
-
})
|
|
56
|
-
setTimeout(() => {
|
|
55
|
+
}).then(() => {
|
|
57
56
|
expect(mockGetCurrentPosition.mock.calls.length).toBe(1)
|
|
58
57
|
})
|
|
59
58
|
})
|
|
File without changes
|
|
File without changes
|
|
@@ -68,6 +68,7 @@ describe('media', () => {
|
|
|
68
68
|
expect(fail.mock.calls.length).toBe(0)
|
|
69
69
|
expect(complete.mock.calls.length).toBe(1)
|
|
70
70
|
expect(complete.mock.calls[0][0]).toEqual({ errMsg: expectMsg, path })
|
|
71
|
+
// @ts-ignore
|
|
71
72
|
expect(res.path).toEqual(path)
|
|
72
73
|
})
|
|
73
74
|
})
|
|
@@ -95,6 +96,7 @@ describe('media', () => {
|
|
|
95
96
|
expect(fail.mock.calls.length).toBe(0)
|
|
96
97
|
expect(complete.mock.calls.length).toBe(1)
|
|
97
98
|
expect(complete.mock.calls[0][0]).toEqual({ errMsg: expectMsg, path })
|
|
99
|
+
// @ts-ignore
|
|
98
100
|
expect(res.path).toEqual(path)
|
|
99
101
|
})
|
|
100
102
|
})
|
|
File without changes
|
|
File without changes
|
|
@@ -19,6 +19,7 @@ describe('request', () => {
|
|
|
19
19
|
})
|
|
20
20
|
})
|
|
21
21
|
})
|
|
22
|
+
// @ts-ignore
|
|
22
23
|
global.fetch = fetch
|
|
23
24
|
})
|
|
24
25
|
|
|
@@ -54,6 +55,7 @@ describe('request', () => {
|
|
|
54
55
|
url,
|
|
55
56
|
responseType: 'text'
|
|
56
57
|
}
|
|
58
|
+
// @ts-ignore
|
|
57
59
|
const res = await Taro.request(options)
|
|
58
60
|
expect(res.data).toEqual(expectData)
|
|
59
61
|
})
|
|
@@ -89,7 +91,7 @@ describe('request', () => {
|
|
|
89
91
|
})
|
|
90
92
|
})
|
|
91
93
|
})
|
|
92
|
-
|
|
94
|
+
// @ts-ignore
|
|
93
95
|
global.fetch = fetch
|
|
94
96
|
|
|
95
97
|
const url = 'https://test.taro.com/v1'
|
|
@@ -102,6 +104,7 @@ describe('request', () => {
|
|
|
102
104
|
}
|
|
103
105
|
|
|
104
106
|
const expectUrl = `https://test.taro.com/v1?${encodeURIComponent('a')}=${encodeURIComponent(1)}`
|
|
107
|
+
// @ts-ignore
|
|
105
108
|
const res = await Taro.request(optionsOne)
|
|
106
109
|
expect(res.data.url).toMatch(expectUrl)
|
|
107
110
|
|
|
@@ -118,6 +121,7 @@ describe('request', () => {
|
|
|
118
121
|
}
|
|
119
122
|
|
|
120
123
|
const expectBodyOne = JSON.stringify({ a: 1 })
|
|
124
|
+
// @ts-ignore
|
|
121
125
|
const resTwo = await Taro.request(optionsTwo)
|
|
122
126
|
expect(resTwo.data.params.body).toMatch(expectBodyOne)
|
|
123
127
|
|
|
@@ -134,6 +138,7 @@ describe('request', () => {
|
|
|
134
138
|
}
|
|
135
139
|
|
|
136
140
|
const expectBodyTwo = `${encodeURIComponent('a')}=${encodeURIComponent(1)}`
|
|
141
|
+
// @ts-ignore
|
|
137
142
|
const resThree = await Taro.request(optionsThree)
|
|
138
143
|
expect(resThree.data.params.body).toMatch(expectBodyTwo)
|
|
139
144
|
})
|
|
@@ -5,6 +5,7 @@ import { scanCode } from '../lib/scanCode'
|
|
|
5
5
|
|
|
6
6
|
describe('scanCode', () => {
|
|
7
7
|
it('should render scanCode success', async () => {
|
|
8
|
+
// @ts-ignore
|
|
8
9
|
const { toJSON, getByLabelText } = render(<RootSiblingParent />)
|
|
9
10
|
scanCode()
|
|
10
11
|
await waitFor(() => getByLabelText('Close'));
|
|
@@ -42,7 +42,7 @@ describe('storage', () => {
|
|
|
42
42
|
expect(complete.mock.calls[0][0]).toEqual({ errMsg: expectMsg })
|
|
43
43
|
expect(res.errMsg).toMatch(expectMsg)
|
|
44
44
|
|
|
45
|
-
const getData = await AsyncStorage.getItem(key)
|
|
45
|
+
const getData = await AsyncStorage.getItem(key) || ''
|
|
46
46
|
expect(JSON.parse(getData)).toBe(data)
|
|
47
47
|
})
|
|
48
48
|
|
|
@@ -56,7 +56,7 @@ describe('storage', () => {
|
|
|
56
56
|
const complete = jest.fn()
|
|
57
57
|
|
|
58
58
|
expect.assertions(4)
|
|
59
|
-
|
|
59
|
+
// @ts-ignore
|
|
60
60
|
return Taro.setStorage({
|
|
61
61
|
data,
|
|
62
62
|
success,
|
|
@@ -112,7 +112,7 @@ describe('storage', () => {
|
|
|
112
112
|
const complete = jest.fn()
|
|
113
113
|
|
|
114
114
|
await AsyncStorage.setItem(key, JSON.stringify(data))
|
|
115
|
-
const getData = await AsyncStorage.getItem(key)
|
|
115
|
+
const getData = await AsyncStorage.getItem(key) || ''
|
|
116
116
|
|
|
117
117
|
expect(JSON.parse(getData)).toBe(data)
|
|
118
118
|
|
|
@@ -132,6 +132,7 @@ describe('storage', () => {
|
|
|
132
132
|
expect(complete.mock.calls.length).toBe(1)
|
|
133
133
|
expect(complete.mock.calls[0][0]).toEqual(res)
|
|
134
134
|
expect(res.errMsg).toMatch(expectMsg)
|
|
135
|
+
// @ts-ignore
|
|
135
136
|
expect(res.data).toBeUndefined()
|
|
136
137
|
})
|
|
137
138
|
})
|
|
@@ -164,8 +165,11 @@ describe('storage', () => {
|
|
|
164
165
|
expect(complete.mock.calls.length).toBe(1)
|
|
165
166
|
expect(complete.mock.calls[0][0]).toEqual(res)
|
|
166
167
|
expect(res.errMsg).toMatch(expectMsg)
|
|
168
|
+
// @ts-ignore
|
|
167
169
|
expect(res.keys).toEqual([key1, key2])
|
|
170
|
+
// @ts-ignore
|
|
168
171
|
expect(res.currentSize).toBe(+(12 / 1024).toFixed(2))
|
|
172
|
+
// @ts-ignore
|
|
169
173
|
expect(res.limitSize).toBe(Infinity)
|
|
170
174
|
})
|
|
171
175
|
})
|
|
@@ -180,8 +184,8 @@ describe('storage', () => {
|
|
|
180
184
|
await AsyncStorage.setItem(key1, JSON.stringify(data))
|
|
181
185
|
await AsyncStorage.setItem(key2, JSON.stringify(data))
|
|
182
186
|
|
|
183
|
-
const getData1 = await AsyncStorage.getItem(key1)
|
|
184
|
-
const getData2 = await AsyncStorage.getItem(key2)
|
|
187
|
+
const getData1 = await AsyncStorage.getItem(key1) || ''
|
|
188
|
+
const getData2 = await AsyncStorage.getItem(key2) || ''
|
|
185
189
|
|
|
186
190
|
expect(JSON.parse(getData1)).toBe(data)
|
|
187
191
|
expect(JSON.parse(getData2)).toBe(data)
|
|
File without changes
|
|
File without changes
|
|
@@ -5,6 +5,7 @@ const Taro = Object.assign({}, connectSocket)
|
|
|
5
5
|
|
|
6
6
|
describe('websocket', () => {
|
|
7
7
|
beforeEach(() => {
|
|
8
|
+
// @ts-ignore
|
|
8
9
|
global.WebSocket = WebSocket
|
|
9
10
|
})
|
|
10
11
|
|
|
@@ -16,6 +17,7 @@ describe('websocket', () => {
|
|
|
16
17
|
expect.assertions(6)
|
|
17
18
|
|
|
18
19
|
return Taro.connectSocket({
|
|
20
|
+
// @ts-ignore
|
|
19
21
|
url: {},
|
|
20
22
|
success,
|
|
21
23
|
fail,
|
|
@@ -61,8 +63,8 @@ describe('websocket', () => {
|
|
|
61
63
|
expect(err.errMsg).toMatch(expectErrMsg)
|
|
62
64
|
})
|
|
63
65
|
|
|
64
|
-
socketTaskOne.close()
|
|
65
|
-
socketTaskTwo.close()
|
|
66
|
+
socketTaskOne.close({})
|
|
67
|
+
socketTaskTwo.close({})
|
|
66
68
|
})
|
|
67
69
|
|
|
68
70
|
test('connection关闭的时候会重置总的socketTask数量', async () => {
|
|
@@ -74,7 +76,7 @@ describe('websocket', () => {
|
|
|
74
76
|
|
|
75
77
|
const socketTaskOne = await Taro.connectSocket({ url: 'wss://localhost:8080', success })
|
|
76
78
|
expect(success.mock.calls.length).toBe(1)
|
|
77
|
-
socketTaskOne.close()
|
|
79
|
+
socketTaskOne.close({})
|
|
78
80
|
|
|
79
81
|
const socketTaskTwo = await Taro.connectSocket({ url: 'wss://localhost:8090', success })
|
|
80
82
|
expect(success.mock.calls.length).toBe(2)
|
|
@@ -99,10 +101,10 @@ describe('websocket', () => {
|
|
|
99
101
|
errMsg: 'connectSocket:ok'
|
|
100
102
|
}))
|
|
101
103
|
|
|
102
|
-
socketTaskTwo.close()
|
|
103
|
-
socketTaskThree.close()
|
|
104
|
+
socketTaskTwo.close({})
|
|
105
|
+
socketTaskThree.close({})
|
|
104
106
|
})
|
|
105
|
-
//
|
|
107
|
+
// @ts-ignore
|
|
106
108
|
test('should work basically', async (done) => {
|
|
107
109
|
const fakeURL = 'wss://localhost:8080'
|
|
108
110
|
const mockServer = new Server(fakeURL)
|
package/src/lib/Mask.tsx
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
import PropTypes from 'prop-types'
|
|
3
|
-
import { StyleSheet, TouchableWithoutFeedback, View
|
|
3
|
+
import { StyleSheet, TouchableWithoutFeedback, View } from 'react-native'
|
|
4
|
+
import { ViewPropTypes } from 'deprecated-react-native-prop-types'
|
|
4
5
|
|
|
5
6
|
const styles = StyleSheet.create({
|
|
6
7
|
mask: {
|
package/src/lib/Popup.tsx
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import React, { Component } from 'react'
|
|
2
2
|
|
|
3
3
|
import PropTypes from 'prop-types'
|
|
4
|
-
import { Modal, View, StyleSheet, Dimensions, Animated, Easing
|
|
4
|
+
import { Modal, View, StyleSheet, Dimensions, Animated, Easing } from 'react-native'
|
|
5
|
+
import { ViewPropTypes } from 'deprecated-react-native-prop-types'
|
|
5
6
|
import { Mask } from './Mask'
|
|
6
7
|
|
|
7
8
|
const { width, height } = Dimensions.get('window')
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as Permissions from 'expo-permissions'
|
|
2
1
|
import { errorHandler, successHandler } from '../../utils'
|
|
2
|
+
import { requestCameraPermissionsAsync, requestMicrophonePermissionsAsync } from 'expo-camera'
|
|
3
3
|
const globalAny: any = global
|
|
4
4
|
|
|
5
5
|
class CameraContext {
|
|
@@ -14,30 +14,39 @@ class CameraContext {
|
|
|
14
14
|
* 开始录像
|
|
15
15
|
*/
|
|
16
16
|
startRecord = (option: Taro.CameraContext.StartRecordOption) => {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
17
|
+
Promise.all([requestCameraPermissionsAsync(), requestMicrophonePermissionsAsync()]).then(([cameraPermission, microphonePermission]) => {
|
|
18
|
+
if(cameraPermission.granted && microphonePermission.granted) {
|
|
19
|
+
this.cameraRef?.recordAsync().then((res) => {
|
|
20
|
+
const { uri } = res
|
|
21
|
+
const result = {
|
|
22
|
+
tempVideoPath: uri,
|
|
23
|
+
tempThumbPath: '',
|
|
24
|
+
errMsg: 'stopRecord: ok'
|
|
25
|
+
}
|
|
26
|
+
this.recordCallback?.success?.(result)
|
|
27
|
+
}).catch((e) => {
|
|
28
|
+
const res = {
|
|
29
|
+
errMsg: e.message
|
|
30
|
+
}
|
|
31
|
+
option?.fail?.(res)
|
|
32
|
+
option?.complete?.(res)
|
|
33
|
+
this.recordCallback?.fail?.({ errMsg: e })
|
|
34
|
+
}).finally(() => {
|
|
35
|
+
this.recordCallback?.complete?.({ errMsg: '' })
|
|
36
|
+
})
|
|
37
|
+
const res = {
|
|
38
|
+
errMsg: 'startRecord: ok'
|
|
24
39
|
}
|
|
25
|
-
|
|
26
|
-
|
|
40
|
+
option?.success?.(res)
|
|
41
|
+
option?.complete?.(res)
|
|
42
|
+
} else {
|
|
27
43
|
const res = {
|
|
28
|
-
errMsg:
|
|
44
|
+
errMsg: 'startRecord: fail',
|
|
45
|
+
err: Error('You have not enabled camera or microphone permissions')
|
|
29
46
|
}
|
|
30
47
|
option?.fail?.(res)
|
|
31
48
|
option?.complete?.(res)
|
|
32
|
-
this.recordCallback?.fail?.({ errMsg: e })
|
|
33
|
-
}).finally(() => {
|
|
34
|
-
this.recordCallback?.complete?.({ errMsg: '' })
|
|
35
|
-
})
|
|
36
|
-
const res = {
|
|
37
|
-
errMsg: 'startRecord: ok'
|
|
38
49
|
}
|
|
39
|
-
option?.success?.(res)
|
|
40
|
-
option?.complete?.(res)
|
|
41
50
|
})
|
|
42
51
|
}
|
|
43
52
|
|
|
@@ -67,8 +76,8 @@ class CameraContext {
|
|
|
67
76
|
break
|
|
68
77
|
}
|
|
69
78
|
try {
|
|
70
|
-
const {
|
|
71
|
-
if (
|
|
79
|
+
const { granted } = await requestCameraPermissionsAsync()
|
|
80
|
+
if (granted) {
|
|
72
81
|
if (this.cameraRef?.takePictureAsync) {
|
|
73
82
|
const { uri } = await this.cameraRef.takePictureAsync({ quality: _quality })
|
|
74
83
|
const res = {
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import Geolocation from '@react-native-community/geolocation'
|
|
2
|
-
import
|
|
3
|
-
import { askAsyncPermissions } from '../../utils/premissions'
|
|
2
|
+
import { requestForegroundPermissionsAsync } from 'expo-location'
|
|
4
3
|
import { errorHandler } from '../../utils'
|
|
5
4
|
|
|
6
5
|
export async function getLocation(opts: Taro.getLocation.Option = {}): Promise<Taro.getLocation.SuccessCallbackResult> {
|
|
7
6
|
const { isHighAccuracy = false, highAccuracyExpireTime = 3000, success, fail, complete } = opts
|
|
8
7
|
|
|
9
8
|
try {
|
|
10
|
-
const
|
|
11
|
-
if (
|
|
9
|
+
const { granted } = await requestForegroundPermissionsAsync()
|
|
10
|
+
if (!granted) {
|
|
12
11
|
const res = { errMsg: 'Permissions denied!' }
|
|
13
12
|
return errorHandler(fail, complete)(res)
|
|
14
13
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Audio } from 'expo-av'
|
|
2
|
-
import * as Permissions from 'expo-permissions'
|
|
3
2
|
import * as FileSystem from 'expo-file-system'
|
|
4
3
|
|
|
5
4
|
class RecorderManager {
|
|
@@ -15,15 +14,15 @@ class RecorderManager {
|
|
|
15
14
|
private static RecordingOptions = {
|
|
16
15
|
android: {
|
|
17
16
|
extension: '.m4a',
|
|
18
|
-
outputFormat: Audio.
|
|
19
|
-
audioEncoder: Audio.
|
|
17
|
+
outputFormat: Audio.AndroidOutputFormat.MPEG_4,
|
|
18
|
+
audioEncoder: Audio.AndroidAudioEncoder.AAC,
|
|
20
19
|
sampleRate: 8000,
|
|
21
20
|
numberOfChannels: 2,
|
|
22
21
|
bitRate: 48000
|
|
23
22
|
},
|
|
24
23
|
ios: {
|
|
25
24
|
extension: '.caf',
|
|
26
|
-
audioQuality: Audio.
|
|
25
|
+
audioQuality: Audio.IOSAudioQuality.MAX,
|
|
27
26
|
sampleRate: 8000,
|
|
28
27
|
numberOfChannels: 2,
|
|
29
28
|
bitRate: 48000,
|
|
@@ -52,13 +51,10 @@ class RecorderManager {
|
|
|
52
51
|
* @param {string} [opts.audioSource='auto'] - 指定录音的音频输入源,可通过 wx.getAvailableAudioSources() 获取当前可用的音频源 ❌
|
|
53
52
|
*/
|
|
54
53
|
async start (opts = {}) {
|
|
55
|
-
const {
|
|
56
|
-
if (
|
|
57
|
-
const {
|
|
58
|
-
|
|
59
|
-
const res = { errMsg: 'Permissions denied!' }
|
|
60
|
-
return Promise.reject(res)
|
|
61
|
-
}
|
|
54
|
+
const { granted } = await Audio.requestPermissionsAsync()
|
|
55
|
+
if (!granted) {
|
|
56
|
+
const res = { errMsg: 'Permissions denied!' }
|
|
57
|
+
return Promise.reject(res)
|
|
62
58
|
}
|
|
63
59
|
|
|
64
60
|
const {
|