-
Notifications
You must be signed in to change notification settings - Fork 1.5k
expo53: configuration, dependency, linting, and maestro fixes #2948
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Making these changes showed a bunch of linting errors and typescript compiler issues, some of which were valid.
Expo 53 - new architecture doesn’t show dev server picker Expo 53 - no new architecture shows dev server this fixes the issue by conditionally waiting to see if that text is on the screen and if so, tap through the expo dev client screens
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR aims to align the project with Expo SDK 53 changes by updating TypeScript configuration, correcting type mismatches, and standardizing dependency versions and linting configurations. Key changes include:
- Updates to tsconfig settings to match Expo SDK 53 (moduleResolution, module, customConditions).
- Fixes to type declarations and imports (e.g. swapping ViewStyle/TextStyle types, type assertions updates).
- Maestro test flow simplifications and dependency updates in package.json and ESLint configurations.
Reviewed Changes
Copilot reviewed 24 out of 24 changed files in this pull request and generated 3 comments.
Show a summary per file
File | Description |
---|---|
src/tools/snapshots/markup.test.ts.snap | Snapshot string formatting updates removing unnecessary escapes. |
src/commands/new.ts | Renamed utility function from useDefault to getDefault for clarity. |
src/commands/generate/splash-screen.ts | Added an ESLint disable comment for destructured variable const preference. |
package.json & boilerplate/* | Updated dependency versions and TS config to reflect Expo SDK 53. |
boilerplate/app/screens/DemoShowroomScreen/DemoShowroomScreen.tsx | Improved type assertions and cleanup in asynchronous logic. |
boilerplate/app/devtools/ReactotronConfig.ts | Added a temporary @ts-ignore with clarification that it’s for debugging. |
boilerplate/app/components/Toggle/* | Adjusted style type definitions to unify component style expectations. |
boilerplate/.maestro/* | Simplified Maestro flows and removed outdated subflows. |
.eslintrc.js & .eslintignore | Inherited ESLint config from boilerplate and ignored snapshots/files. |
@@ -180,7 +180,7 @@ module.exports = { | |||
|
|||
const yname = boolFlag(options.y) || boolFlag(options.yes) | |||
const noTimeout = options.noTimeout ?? false | |||
const useDefault = (option: unknown) => yname && option === undefined |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The new linter config was complaining about "use" being a react-only keyword so i changed it to "get"
@@ -166,7 +168,11 @@ export const DemoShowroomScreen: FC<DemoTabScreenProps<"DemoShowroom">> = | |||
} | |||
|
|||
useEffect(() => { | |||
return () => timeout.current && clearTimeout(timeout.current) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the linter was complaining about this possibly returning null
🤦
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good! Thanks for the changes.
@markrickert in the future let's make sure we merge branches like this with feat/fix for semver which would have gone through the auto release process the typical commit would look like
see https://docs.infinite.red/ignite-cli/contributing/Releasing-Ignite/#a-note-about-semver for more info |
* chore(typescript): update moduleResolution and module properties Making these changes showed a bunch of linting errors and typescript compiler issues, some of which were valid. * fix(tests): allow metro to work regardless of expo-dev-client Expo 53 - new architecture doesn’t show dev server picker Expo 53 - no new architecture shows dev server this fixes the issue by conditionally waiting to see if that text is on the screen and if so, tap through the expo dev client screens * chore(deps): update dependencies * chore(linter): move the eslint config to a js file and inherit from the boilerplate
* chore(typescript): update moduleResolution and module properties Making these changes showed a bunch of linting errors and typescript compiler issues, some of which were valid. * fix(tests): allow metro to work regardless of expo-dev-client Expo 53 - new architecture doesn’t show dev server picker Expo 53 - no new architecture shows dev server this fixes the issue by conditionally waiting to see if that text is on the screen and if so, tap through the expo dev client screens * chore(deps): update dependencies * chore(linter): move the eslint config to a js file and inherit from the boilerplate
* chore(typescript): update moduleResolution and module properties Making these changes showed a bunch of linting errors and typescript compiler issues, some of which were valid. * fix(tests): allow metro to work regardless of expo-dev-client Expo 53 - new architecture doesn’t show dev server picker Expo 53 - no new architecture shows dev server this fixes the issue by conditionally waiting to see if that text is on the screen and if so, tap through the expo dev client screens * chore(deps): update dependencies * chore(linter): move the eslint config to a js file and inherit from the boilerplate
Description
This makes a few changes to @fpena's expo 53 branch in #2938:
moduleResolution
changed from'node
tobundler
module
changed fromes2015
topreserve
"customConditions": ["react-native"]
to the compiler options.yarn compile
command previously. Mostly just accidentally substitutingViewStyle
forTextStyle
in the type declarations.expo/non-expo + newArch/oldArch
. ... simplifies the number of files/scripts needed, and reduces the amount of logic needed to bypass both the dev server picker screen and the dev menu bottom sheet from expo that shows up in expo dev builds in the oldArch.npx expo install --fix
told me to update including the@types/react
andexpo-router
deps.Checklist
README.md
and other relevant documentation has been updated with my changes