chore(expo-modules-core)!: remove and deprecate objects (#24298)# Why - Remove deprecated `RCTDeviceEventEmitter` (deprecated for years). - Remove `deprecate` utility function (unused in repo).
chore(expo-modules-core)!: remove and deprecate objects (#24298)# Why - Remove deprecated `RCTDeviceEventEmitter` (deprecated for years). - Remove `deprecate` utility function (unused in repo). - Deprecate `SyntheticPlatformEmitter` in favor of `DeviceEventEmitter` (renamed internally in `react-native-web`). - Remove `compare-versions` package. - Create web-only mock of side-effect file to reduce bundle size in base web apps. --------- Co-authored-by: Expo Bot <[email protected]>
show more ...
[lint] Upgrade to Prettier v3, typescript-eslint to v6 (#23544)Why --- Prettier 3 is out. Add support for it with this linter config. **Note for reviewer:** the first commit is the one with th
[lint] Upgrade to Prettier v3, typescript-eslint to v6 (#23544)Why --- Prettier 3 is out. Add support for it with this linter config. **Note for reviewer:** the first commit is the one with the actual changes. The rest of this PR are changes to get the linter passing (mostly autofix). How --- Update eslint-config-prettier and eslint-plugin-prettier. To address deprecation warnings, also update typescript-eslint/parser and typescript-eslint/eslint-plugin. Because of an update to typescript-eslint/parser, we need to suppress deprecation warnings (documented in a comment). Regenerated test snapshots. Due to the upgraded dependencies, typecasts and optional chaining are now auto-fixable by lint. This converts warnings into autofixes. Test Plan --- `yarn test` in the linter config. Run `expotools check --all --fix-lint --no-build --no-test --no-uniformity-check` to try this config on the whole repo. --------- Co-authored-by: Expo Bot <[email protected]>
[expo-modules-core] Add warnings to error manager (#23848)Co-authored-by: Łukasz Kosmaty <[email protected]>
[workspace] Bump TypeScript version to 5.1.3 (#23143)# Why Closes ENG-9088 # How Bump TypeScript to the latest, and rebuild all required SDK packages Had to update `typeRoots` inside `
[workspace] Bump TypeScript version to 5.1.3 (#23143)# Why Closes ENG-9088 # How Bump TypeScript to the latest, and rebuild all required SDK packages Had to update `typeRoots` inside `expo-module-scripts` due to a change in TypeScript 5.1 where it no longer walks up automatically looking in parent directories ([Release notes](https://devblogs.microsoft.com/typescript/announcing-typescript-5-1-rc/#typeroots-are-consulted-in-module-resolution)) # Test Plan Ensure that `et cp -a` yields no errors, docs and tools build correctly, and that CI is green # Checklist <!-- Please check the appropriate items below if they apply to your diff. This is required for changes to Expo modules. --> - [ ] Documentation is up to date to reflect these changes (eg: https://docs.expo.dev and README.md). - [ ] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md) - [ ] This diff will work correctly for `npx expo prebuild` & EAS Build (eg: updated a module plugin).
[sweet API][Kotlin] Improve JSI error handling (#18259)# Why Improves error handling in functions that are called via JSI. All API errors should look like this: ``` expo.modules.kotlin.jni.Pr
[sweet API][Kotlin] Improve JSI error handling (#18259)# Why Improves error handling in functions that are called via JSI. All API errors should look like this: ``` expo.modules.kotlin.jni.PromiseException: Call to function 'f.TestModule' has been rejected. → Caused by: java.lang.IllegalStateException ``` # How - Exported `CodedError` and use it to wrap the bare Kotlin exceptioThathat makes expressions like this `exception instanceOf CodedError` work. - Added more `exceptionDecorator` blocks to add more context to the exceptions inside of exported functions. - Mocked `CodedError` class in the test environment. # Test Plan - unit tests ✅
[modules-core] Fix `Cannot read properties of undefined (reading 'default')` in `check-packages`
[sweet][kotlin] Add basic 'LogBox' integration (#15834)# Why When something goes wrong when invoking prop setters, we can't inform the user about it. Previously, we just ignored such a case and
[sweet][kotlin] Add basic 'LogBox' integration (#15834)# Why When something goes wrong when invoking prop setters, we can't inform the user about it. Previously, we just ignored such a case and logged the exception to the native console. However, it isn't ideal in a long run. So, I've added a simple `LogBox` integration to display exceptions there. # How Unfortunately, `LogBox` doesn't have a native API. To display something in it, I have to send an exception to js (as an event) and log it there. I've created a new module that is registered in the kotlin bridge. This module isn't necessary on Android, but it's helpful. Moreover, we will need it on iOS. > Note: I've changed how we obtain `NativeUnimoduleProxy` from the react context. The old way wasn't working in every case. # Test Plan - bare-expo ✅ (This error was thrown in prop setter) 