Skip to content

Commit 01b799c

Browse files
authored
Upgrade Belt CLI to use Expo 53 (#72)
[Expo 53](https://expo.dev/changelog/sdk-53) is the latest release of SDK and has been around for a few months now. This PR is an attempt to upgrade the Belt CLI to use Expo 53. ## How to test Checkout this branch and run the commands below: ``` // clear existing builds and belt build rm -rf dist builds // Generate Belt CLI build yarn build // Generate new ExpoSample app using the Belt CLI node bin/checks/build-with-latest-expo.check.js ```
1 parent ca82d3f commit 01b799c

4 files changed

Lines changed: 27 additions & 23 deletions

File tree

templates/boilerplate/jest.setup.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import '@testing-library/jest-native/extend-expect';
22
import { configure } from '@testing-library/react-native';
33
import mockSafeAreaContext from 'react-native-safe-area-context/jest/mock';
4-
import mockBackHandler from 'react-native/Libraries/Utilities/__mocks__/BackHandler.js';
4+
import mockBackHandler from 'react-native/Libraries/Utilities/__mocks__/BackHandler';
55
import server from 'src/test/server';
66
import queryClient from 'src/util/api/queryClient';
77

@@ -26,10 +26,10 @@ jest.mock('react-native/Libraries/LogBox/LogBox', () => ({
2626
},
2727
}));
2828

29-
jest.mock(
30-
'react-native/Libraries/Utilities/BackHandler',
31-
() => mockBackHandler,
32-
);
29+
jest.mock('react-native/Libraries/Utilities/BackHandler', () => ({
30+
__esModule: true,
31+
default: mockBackHandler,
32+
}));
3333

3434
jest.mock('@react-native-async-storage/async-storage', () =>
3535
require('@react-native-async-storage/async-storage/jest/async-storage-mock'),

templates/boilerplate/package.json

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -19,38 +19,41 @@
1919
},
2020
"dependencies": {
2121
"@expo/vector-icons": "^14.0.2",
22-
"@react-native-async-storage/async-storage": "1.23.1",
22+
"@react-native-async-storage/async-storage": "2.1.2",
2323
"@react-navigation/bottom-tabs": "^6.5.20",
2424
"@react-navigation/native": "^6.1.10",
2525
"@react-navigation/native-stack": "^6.9.18",
2626
"@tanstack/react-query": "^5.32.1",
2727
"axios": "^1.6.8",
28-
"expo": "~51.0.18",
29-
"expo-status-bar": "~1.12.1",
30-
"msw": "^2.2.14",
31-
"react": "18.2.0",
32-
"react-native": "0.74.5",
28+
"expo": "^53.0.11",
29+
"expo-status-bar": "~2.2.3",
30+
"react": "19.0.0",
31+
"react-native": "0.79.3",
3332
"react-native-keyboard-aware-scroll-view": "^0.9.5",
34-
"react-native-safe-area-context": "4.10.5",
35-
"react-native-screens": "3.31.1"
33+
"react-native-safe-area-context": "5.4.0",
34+
"react-native-screens": "~4.11.1"
3635
},
3736
"devDependencies": {
3837
"@babel/core": "^7.20.0",
3938
"@testing-library/jest-native": "^5.4.3",
40-
"@testing-library/react-native": "^12.4.5",
39+
"@testing-library/react-native": "^13.2.0",
4140
"@thoughtbot/eslint-config": "^1.0.2",
42-
"@types/jest": "^29.5.12",
43-
"@types/react": "~18.2.73",
44-
"@types/react-test-renderer": "^18.0.7",
41+
"@types/jest": "^29.5.14",
42+
"@types/react": "~19.0.0",
43+
"@types/react-test-renderer": "^19.0.0",
4544
"babel-jest": "^29.7.0",
4645
"create-belt-app": "^0.7.3",
4746
"eslint": "^8.56.0",
48-
"jest": "^29.3.1",
49-
"jest-expo": "~51.0.3",
47+
"msw": "^2.2.14",
48+
"jest": "~29.7.0",
49+
"jest-expo": "~53.0.7",
5050
"npm-run-all": "^4.1.5",
5151
"prettier": "^3.2.5",
52-
"react-test-renderer": "18.2.0",
53-
"typescript": "~5.3.3"
52+
"react-test-renderer": "19.0.0",
53+
"typescript": "~5.8.3"
54+
},
55+
"peerDependencies": {
56+
"react": "^19.0.0"
5457
},
5558
"private": true
5659
}

templates/boilerplate/src/test/waitForUpdates.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,6 @@ import sleep from './sleep';
88
* @param time
99
*/
1010
export default async function waitForUpdates(time = 2) {
11+
// eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call
1112
return act(() => sleep(time));
1213
}

templates/boilerplate/tsconfig.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
"allowSyntheticDefaultImports": true,
99
"strict": true,
1010
"forceConsistentCasingInFileNames": true,
11-
"module": "commonjs",
12-
"moduleResolution": "node",
11+
"module": "esnext",
12+
"moduleResolution": "bundler",
1313
"resolveJsonModule": true,
1414
"isolatedModules": true,
1515
"noEmit": true,

0 commit comments

Comments
 (0)