Skip to content

Conversation

@pull
Copy link

@pull pull bot commented Jan 15, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

hassankhan and others added 7 commits January 15, 2026 16:01
… loaders (#42147)

# Why

In development, regardless of the `web.output` setting, loaders would
always get a `null` `request` parameter.

# How

- Modified `createRouteHandlerMiddleware()` to respect `web.output`
  - when `web.output: static`, `request` is `undefined`
- when `web.output: server`and `unstable_useServerRendering: true`,
`request` is a `Request`
- Removed `DataLoaderModuleMiddleware` and updated
`createRouteHandlerMiddleware()` to handle loader responses
- Aligned loader function argument to be `Request | undefined` to match
`LoaderFunction` type, SSG was using `Request | null`
- Added a new E2E test fixture and updated the Jest static and server
loader E2E tests

# Test Plan

- CI
- Manual testing

# Checklist

- [x] I added a `changelog.md` entry and rebuilt the package sources
according to [this short
guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting)
- [x] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
- [ ] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
# Why

Some local e2e tests were failing

# How

<!--
How did you build this feature or fix this bug and why?
-->

# Test Plan


# Checklist

<!--
Please check the appropriate items below if they apply to your diff.
-->

- [ ] I added a `changelog.md` entry and rebuilt the package sources
according to [this short
guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting)
- [ ] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
- [ ] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
# Why

Resolves
<https://linear.app/expo/issue/ENG-18754/bug-report-heap-corruption>

Expo's TypedArray implementation always returns data pointer with
byteOffset applied
([source](https://github.com/expo/expo/blob/1cf92d61390bd06649d2debb8ab1258bda2e6f4d/packages/expo-modules-core/common/cpp/JSI/TypedArray.cpp#L55)).
So functions like
[`read()`/`write()`](https://github.com/expo/expo/blob/1cf92d61390bd06649d2debb8ab1258bda2e6f4d/packages/expo-modules-core/android/src/main/java/expo/modules/kotlin/typedarray/TypedArray.kt#L38-L39)
on Android or
[`rawPointer`](https://github.com/expo/expo/blob/1cf92d61390bd06649d2debb8ab1258bda2e6f4d/packages/expo-modules-core/ios/Core/TypedArrays/TypedArray.swift#L65)
on iOS already return relative offset.
Thus, we shouldn't apply `byteOffset` again on callsites.

# How

- Removed `byteOffset` offsets when writing typed arrays in `digest()`
and `getRandomValues()` (set to 0)
- Added comments in typed array methods to make it more clear about the
offsets.

# Test Plan

Manual tests with custom offsets, including repro from Linear

# Checklist

- [x] I added a `changelog.md` entry and rebuilt the package sources
according to [this short
guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting)
- [ ] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
- [ ] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)

---------

Co-authored-by: Expo Bot <[email protected]>
@pull pull bot locked and limited conversation to collaborators Jan 15, 2026
@pull pull bot added the ⤵️ pull label Jan 15, 2026
@pull pull bot merged commit ed25960 into code:main Jan 15, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants