Skip to content

Commit c8e37bd

Browse files
authored
Merge pull request #36 from PlayerData/assorted-small-tweaks
chore(deps): update the workflow and docs to include type checking
2 parents 054dbe0 + 57e1abe commit c8e37bd

File tree

12 files changed

+65
-68
lines changed

12 files changed

+65
-68
lines changed

.github/workflows/build_and_release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
uses: actions/checkout@v1
1616

1717
- name: Setup Node.js
18-
uses: actions/setup-node@v1
18+
uses: actions/setup-node@v3
1919
with:
2020
node-version: 16
2121

.github/workflows/lint.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,18 @@ jobs:
1313
uses: actions/checkout@v1
1414

1515
- name: Setup Node.js
16-
uses: actions/setup-node@v1
16+
uses: actions/setup-node@v3
1717
with:
1818
node-version: 16
1919

20-
- name: Install dependencies
20+
- name: Install package dependencies
2121
run: yarn install
22+
23+
- name: Install example app dependencies
24+
run: yarn example install
2225

2326
- name: Lint
2427
run: yarn lint
28+
29+
- name: Typecheck
30+
run: yarn typecheck

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ yarn example ios
5959
Make sure your code passes TypeScript and ESLint. Run the following to verify:
6060

6161
```sh
62-
yarn typescript
62+
yarn typecheck
6363
yarn lint
6464
```
6565

example/ios/Podfile.lock

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ PODS:
224224
- react-native-ble-plx (2.0.3):
225225
- MultiplatformBleAdapter (= 0.1.9)
226226
- React-Core
227-
- react-native-document-picker (5.3.0):
227+
- react-native-document-picker (9.0.1):
228228
- React-Core
229229
- react-native-get-random-values (1.8.0):
230230
- React-Core
@@ -440,7 +440,7 @@ SPEC CHECKSUMS:
440440
React-jsinspector: 218a2503198ff28a085f8e16622a8d8f507c8019
441441
React-logger: f79dd3cc0f9b44f5611c6c7862badd891a862cf8
442442
react-native-ble-plx: f10240444452dfb2d2a13a0e4f58d7783e92d76e
443-
react-native-document-picker: 226068006be4c52f8ef7f32d855ee025a12e9e64
443+
react-native-document-picker: 2b8f18667caee73a96708a82b284a4f40b30a156
444444
react-native-get-random-values: a6ea6a8a65dc93e96e24a11105b1a9c8cfe1d72a
445445
react-native-mcu-manager: 0b8b4258106b8a3c2888a1521a6ae3d5634ba463
446446
React-perflogger: 30ab8d6db10e175626069e742eead3ebe8f24fd5
@@ -460,4 +460,4 @@ SPEC CHECKSUMS:
460460

461461
PODFILE CHECKSUM: c253f0de47435bd522e26588156f2650ee8d47f0
462462

463-
COCOAPODS: 1.11.3
463+
COCOAPODS: 1.12.0

example/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,13 @@
1414
"react": "18.1.0",
1515
"react-native": "0.68.1",
1616
"react-native-ble-plx": "^2.0.2",
17-
"react-native-document-picker": "^5.0.2",
17+
"react-native-document-picker": "9.0.1",
1818
"react-native-get-random-values": "^1.8.0"
1919
},
2020
"devDependencies": {
2121
"@babel/core": "^7.12.10",
2222
"@babel/runtime": "^7.12.5",
23+
"@types/lodash": "^4.14.186",
2324
"@types/react-native": "^0.67.6",
2425
"babel-plugin-module-resolver": "^4.1.0",
2526
"metro-react-native-babel-preset": "^0.70.2",

example/src/useFilePicker.ts

Lines changed: 27 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { useState } from 'react';
22
import { Platform } from 'react-native';
3-
import DocumentPicker, {
4-
DocumentPickerOptions,
5-
} from 'react-native-document-picker';
3+
import DocumentPicker from 'react-native-document-picker';
4+
5+
import type { DocumentPickerResponse } from 'react-native-document-picker';
66

77
export interface SelectedFile {
88
uri: string;
@@ -17,41 +17,34 @@ const useFilePicker = (): {
1717
const [selectedFile, setSelectedFile] = useState<SelectedFile | null>(null);
1818
const [filePickerError, setError] = useState<string | null>(null);
1919

20-
const runDocumentPicker = async (
21-
pickerArgs: DocumentPickerOptions<any>,
22-
fileDelimiter: string
23-
) => {
24-
try {
25-
const res = await DocumentPicker.pickSingle(pickerArgs);
26-
const uri = res.fileCopyUri ? res.fileCopyUri : res.uri;
27-
setSelectedFile({ uri, name: uri.split(fileDelimiter).slice(-1)[0] });
28-
} catch (err) {
29-
if (!DocumentPicker.isCancel(err)) {
30-
setSelectedFile(null);
31-
setError(err.message);
32-
}
33-
}
34-
};
35-
3620
const pickFile = async () => {
21+
let result: DocumentPickerResponse | null = null;
22+
let fileDelimiter: string | null = null;
3723
try {
3824
if (Platform.OS === 'ios') {
39-
runDocumentPicker(
40-
{
41-
type: ['public.data'],
42-
copyTo: 'cachesDirectory',
43-
},
44-
'/'
45-
);
46-
} else {
47-
runDocumentPicker(
48-
{
49-
type: ['*/*'],
50-
},
51-
'%2F'
52-
);
25+
type os = 'ios';
26+
fileDelimiter = '%2F';
27+
result = await DocumentPicker.pickSingle<os>({
28+
allowMultiSelection: false,
29+
type: ['public.data'],
30+
copyTo: 'cachesDirectory',
31+
});
32+
}
33+
if (Platform.OS === 'android') {
34+
type os = 'android';
35+
fileDelimiter = '/';
36+
result = await DocumentPicker.pickSingle<os>({
37+
allowMultiSelection: false,
38+
type: ['*/*'],
39+
});
5340
}
54-
} catch (err) {
41+
42+
if (result == null || fileDelimiter == null) {
43+
throw 'Failed to pick a file, is your OS supported?';
44+
}
45+
const uri = result.fileCopyUri ? result.fileCopyUri : result.uri;
46+
setSelectedFile({ uri, name: uri.split(fileDelimiter).slice(-1)[0] });
47+
} catch (err: any) {
5548
if (!DocumentPicker.isCancel(err)) {
5649
setSelectedFile(null);
5750
setError(err.message);

example/yarn.lock

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1018,6 +1018,11 @@
10181018
dependencies:
10191019
"@types/istanbul-lib-report" "*"
10201020

1021+
"@types/lodash@^4.14.186":
1022+
version "4.14.195"
1023+
resolved "https://npm.playerdata.co.uk/@types/lodash/-/lodash-4.14.195.tgz#bafc975b252eb6cea78882ce8a7b6bf22a6de632"
1024+
integrity sha512-Hwx9EUgdwf2GLarOjQp5ZH8ZmblzcbTBC2wtQWNKARBSxM9ezRIAUpeDTgoQRAFB0+8CNWXVA9+MaSOzOF3nPg==
1025+
10211026
"@types/node@*":
10221027
version "17.0.31"
10231028
resolved "https://npm.playerdata.co.uk/@types%2fnode/-/node-17.0.31.tgz#a5bb84ecfa27eec5e1c802c6bbf8139bdb163a5d"
@@ -3562,10 +3567,10 @@ react-native-codegen@^0.0.13:
35623567
jscodeshift "^0.13.1"
35633568
nullthrows "^1.1.1"
35643569

3565-
react-native-document-picker@^5.0.2:
3566-
version "5.3.0"
3567-
resolved "https://npm.playerdata.co.uk/react-native-document-picker/-/react-native-document-picker-5.3.0.tgz#90f53def42d87a316b76311c729ba401c2823ffa"
3568-
integrity sha512-vFw9pHJywEY+xeMGM8LgfZYMw12bXQNi8vf2DblFLh11lSLf6J99nZweAGVDB8Va+Fg6CP+nLfWG2bWgL4XmMw==
3570+
react-native-document-picker@9.0.1:
3571+
version "9.0.1"
3572+
resolved "https://npm.playerdata.co.uk/react-native-document-picker/-/react-native-document-picker-9.0.1.tgz#a5ceec157f84dbadb85fe717c657569755f4c6ca"
3573+
integrity sha512-l2c2xChwsdjzZIV9QJc85buC3vXkM5ZuY4943yMDj3TiszJp1spmHNaRMZKYIh3yVwdD2jENm0DBU5AWa+jhLg==
35693574
dependencies:
35703575
invariant "^2.2.4"
35713576

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@
6464
"react-native": "0.68.1",
6565
"react-native-builder-bob": "^0.18.1",
6666
"semantic-release": "^17.4.2",
67-
"typescript": "^4.1.3"
67+
"typescript": "5.0.4"
6868
},
6969
"peerDependencies": {
7070
"react": "*",

src/Upgrade.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
import {
2-
NativeModules,
3-
NativeEventEmitter,
4-
EmitterSubscription,
5-
} from 'react-native';
1+
import { NativeModules, NativeEventEmitter } from 'react-native';
2+
3+
import type { EmitterSubscription } from 'react-native';
64

75
import { v4 as uuidv4 } from 'uuid';
86

src/index.tsx

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,13 @@ import { NativeModules } from 'react-native';
22

33
const { McuManager } = NativeModules;
44

5-
import Upgrade, {
6-
FirmwareUpgradeState,
7-
UpgradeOptions,
8-
UpgradeMode,
9-
} from './Upgrade';
5+
import Upgrade, { UpgradeMode } from './Upgrade';
6+
7+
import type { FirmwareUpgradeState, UpgradeOptions } from './Upgrade';
108

119
export const eraseImage = McuManager?.eraseImage as (
1210
bleId: string
1311
) => Promise<void>;
1412

15-
export { Upgrade, FirmwareUpgradeState, UpgradeOptions, UpgradeMode };
13+
export { Upgrade, UpgradeMode };
14+
export type { FirmwareUpgradeState, UpgradeOptions };

0 commit comments

Comments
 (0)