Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
dd81459
feat(expo): add Expo Metro config translator + EXPO_BUNDLER compatibi…
elcoosp Aug 14, 2026
68a9266
feat(expo): Phase 2/3 — runtime shim + Expo Router manifest for Rolli…
elcoosp Aug 14, 2026
1f41867
fix(core): parse .js as JSX on native platforms so RN/Expo deps (e.g.…
elcoosp Aug 14, 2026
cf89eab
fix(expo): add scoped CJS-interop shim for expo-asset setCustomSource…
elcoosp Aug 14, 2026
4f37f1b
refactor(expo): redirect @expo/metro-runtime via core resolve.alias
elcoosp Aug 14, 2026
609a8c1
fix(expo): intercept @expo/metro-runtime via unfiltered resolveId
elcoosp Aug 14, 2026
512a01a
fix(expo): resolve @expo/metro-config via ROLLIPOP_EXPO_METRO_CONFIG env
elcoosp Aug 15, 2026
b7869f0
fix(dev-server): resolve virtual entry + Metro entry alias for Expo D…
elcoosp Aug 15, 2026
55145ad
fix(expo): resolve rolldown self-ref default-export interop for Image
elcoosp Aug 16, 2026
3c177db
fix(expo): production-grade hardening from code-review pass
elcoosp Aug 16, 2026
d7c62bb
fix(css): handle CSS modules for React Native / Expo native builds
elcoosp Aug 16, 2026
54af41f
fix(expo-dev-client): serve the Expo manifest so the Dev Client can l…
elcoosp Aug 16, 2026
d368f90
test: green the unit/e2e suite (react-native devDep + alias + mcp fixes)
elcoosp Aug 16, 2026
b7de6ad
fix(expo-dev-client): serve the Expo manifest at the dev server root `/`
elcoosp Aug 16, 2026
863850d
fix(expo): harden integration for production-grade correctness
elcoosp Aug 16, 2026
c7b3a5a
fix(core): inline process.env.EXPO_OS for native builds (babel-preset…
elcoosp Aug 17, 2026
f881b48
fix(core): discover app entry and enable JSX in .mjs deps
elcoosp Aug 17, 2026
067bdd1
fix(core): auto-enable reanimated/worklets so ScrollView.scrollTo wor…
elcoosp Aug 17, 2026
49d8119
feat(expo): full rollipop bundler integration via Expo Router _ctx vi…
elcoosp Aug 17, 2026
95b9942
fix(core): correct RN codegen Flow handling — green the pnp + runtime…
elcoosp Aug 17, 2026
86334c7
feat(rolldown): treat tvOS and macOS as native platforms for Expo/RN …
elcoosp Aug 17, 2026
801c04d
fix(dev-server): serve /onchange at root for Expo Dev Client
elcoosp Aug 18, 2026
4053e9b
fix: device-reachable sourceMappingURL + expo-asset interop in dev mode
elcoosp Aug 18, 2026
1fbffca
chore: ignore AGENTS.md (local dev-env notes)
elcoosp Aug 18, 2026
9d0bd56
test: cover sourceMappingURL host rewrite + expo-asset load-hook shim
elcoosp Aug 18, 2026
ea55d38
fix(server): bracket IPv6 host in getBaseUrl
elcoosp Aug 24, 2026
8bb7a00
fix(codegen): detect RN-core codegen modules by id + source-content
elcoosp Aug 24, 2026
b971b13
fix(codegen): run codegen transform in dev/serve mode
elcoosp Aug 24, 2026
8783839
fix(dev-server): serve the full (non-lazy) bundle in the expo manifest
elcoosp Aug 24, 2026
a420171
Merge remote-tracking branch 'upstream/main' into feat/expo-bundler-i…
elcoosp Aug 28, 2026
b4888eb
fix(rn): resolve virtual react-native/asset-registry specifier
elcoosp Aug 29, 2026
ed45190
fix(server): register expo manifest middleware
elcoosp Aug 29, 2026
d252375
test(server): restore create-dev-server spec to upstream/main Devfram…
elcoosp Aug 29, 2026
4602c7c
test: drop e2e specs absent from upstream/main
elcoosp Aug 29, 2026
48665ac
fix(server): advertise LAN IP instead of wildcard bind host for HMR
elcoosp Aug 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,6 @@ package.tgz

# coverage
coverage/

# Local dev-environment notes (port map, agent conventions) — not product source
AGENTS.md
13 changes: 13 additions & 0 deletions packages/rollipop/e2e/__fixtures__/hmr-app/App.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import React from 'react';
import { Text, View } from 'react-native';

export function App() {
const mode = import.meta.env.MODE;

return (
<View>
<Text>Hello from Rollipop</Text>
<Text>{mode}</Text>
</View>
);
}
4 changes: 4 additions & 0 deletions packages/rollipop/e2e/__fixtures__/hmr-app/app.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"name": "RollipopTestApp",
"displayName": "RollipopTestApp"
}
6 changes: 6 additions & 0 deletions packages/rollipop/e2e/__fixtures__/hmr-app/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import { AppRegistry } from 'react-native';

import { App } from './App';
import { name as appName } from './app.json';

AppRegistry.registerComponent(appName, () => App);
5 changes: 5 additions & 0 deletions packages/rollipop/e2e/__fixtures__/hmr-app/rollipop.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import { defineConfig } from 'rollipop';

export default defineConfig({
entry: 'index.js',
});
269 changes: 0 additions & 269 deletions packages/rollipop/e2e/pnp.spec.ts

This file was deleted.

6 changes: 5 additions & 1 deletion packages/rollipop/e2e/resolver.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,11 @@ describe('resolver', () => {
});

expect(chunk.code).toContain('"esm"');
expect(chunk.code).not.toContain('"react-native"');
// The `react-native` condition field must NOT be selected (it is excluded from
// conditionNames). N.B. the substring "react-native" also appears in the
// deduped react-native module path emitted by the runtime shim, so we assert
// on the field's own marker rather than the bare substring.
expect(chunk.code).not.toContain("source = 'react-native'");
});
});

Expand Down
Loading
Loading