Skip to content

Commit

Permalink
feat(babel): rewrite for web (attempt 2) (#27907)
Browse files Browse the repository at this point in the history
# Why

- Alternative to #24725 which takes a
less radical approach.
- Instead of reimplementing all the functionality, we'll simply remove
the unused babel transforms from the existing preset.

<!--
Please describe the motivation for this PR, and link to relevant GitHub
issues, forums posts, or feature requests.
-->

# Test Plan

- Hopefully all language tests catch any changes.
- This only applies to web and ssr.

---------

Co-authored-by: Expo Bot <34669131+expo-bot@users.noreply.github.com>
  • Loading branch information
EvanBacon and expo-bot committed Apr 3, 2024
1 parent b112c71 commit ff0cde7
Show file tree
Hide file tree
Showing 12 changed files with 380 additions and 278 deletions.
2 changes: 2 additions & 0 deletions packages/babel-preset-expo/CHANGELOG.md
Expand Up @@ -4,6 +4,8 @@

### 🛠 Breaking changes

- Remove all unused babel plugins on web and SSR. ([#27907](https://github.com/expo/expo/pull/27907) by [@EvanBacon](https://github.com/EvanBacon))

### 🎉 New features

- Add faster `Platform.select` transform. ([#27533](https://github.com/expo/expo/pull/27533) by [@EvanBacon](https://github.com/EvanBacon))
Expand Down
8 changes: 5 additions & 3 deletions packages/babel-preset-expo/build/index.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions packages/babel-preset-expo/build/web-preset.d.ts

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

73 changes: 73 additions & 0 deletions packages/babel-preset-expo/build/web-preset.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions packages/babel-preset-expo/package.json
Expand Up @@ -45,6 +45,7 @@
"@babel/plugin-transform-export-namespace-from": "^7.22.11",
"@babel/plugin-transform-object-rest-spread": "^7.12.13",
"@babel/plugin-transform-parameters": "^7.22.15",
"@babel/preset-typescript": "^7.23.0",
"@babel/preset-react": "^7.22.15",
"@react-native/babel-preset": "~0.74.77",
"babel-plugin-react-native-web": "~0.19.10",
Expand Down
Expand Up @@ -9,22 +9,20 @@ exports[`asserts that use client and use server cannot be used together 1`] = `
4 | "
`;

exports[`use client does nothing without use client directive 1`] = `"export var foo = 'bar';"`;
exports[`use client does nothing without use client directive 1`] = `"export const foo = 'bar';"`;

exports[`use client replaces client exports with React client references 1`] = `"module.exports = require("react-server-dom-webpack/server").createClientModuleProxy("file:///unknown");"`;

exports[`use server replaces server action exports with React server references 1`] = `
"'use server';
export var greet = function greet(name) {
return \`Hello \${name} from server!\`;
};
export const greet = name => \`Hello \${name} from server!\`;
;
(function () {
(() => {
if (typeof module.exports === 'function') {
require('react-server-dom-webpack/server').registerServerReference(module.exports, "file:///unknown", null);
} else {
for (var key in module.exports) {
for (const key in module.exports) {
if (typeof module.exports[key] === 'function') {
require('react-server-dom-webpack/server').registerServerReference(module.exports[key], "file:///unknown", key);
}
Expand Down
Expand Up @@ -318,8 +318,8 @@ console.log("Hey I'm running on the UI thread");
`;
exports[`webpack supports reanimated worklets 1`] = `
"var _worklet_549132292534_init_data={code:"function someWorklet(greeting){console.log(\\"Hey I'm running on the UI thread\\");}",location:"[mock]/worklet.js",sourceMap:"{\\"version\\":3,\\"names\\":[\\"someWorklet\\",\\"greeting\\",\\"console\\",\\"log\\"],\\"sources\\":[\\"[mock]/worklet.js\\"],\\"mappings\\":\\"AAAA,SAAAA,YAAAC,QAAA,EAAAC,OAAA,CAAAC,GAAA,qCACA\\"}",version:"[GLOBAL]"};var
someWorklet=function(){var _e=[new global.Error(),1,-27];var someWorklet=function someWorklet(greeting){
"const _worklet_549132292534_init_data={code:"function someWorklet(greeting){console.log(\\"Hey I'm running on the UI thread\\");}",location:"[mock]/worklet.js",sourceMap:"{\\"version\\":3,\\"names\\":[\\"someWorklet\\",\\"greeting\\",\\"console\\",\\"log\\"],\\"sources\\":[\\"[mock]/worklet.js\\"],\\"mappings\\":\\"AAAA,SAAAA,YAAAC,QAAA,EAAAC,OAAA,CAAAC,GAAA,qCACA\\"}",version:"[GLOBAL]"};const
someWorklet=function(){const _e=[new global.Error(),1,-27];const someWorklet=function(greeting){
console.log("Hey I'm running on the UI thread");
};someWorklet.__closure={};someWorklet.__workletHash=549132292534;someWorklet.__initData=_worklet_549132292534_init_data;someWorklet.__stackDetails=_e;return someWorklet;}();"
Expand Down

0 comments on commit ff0cde7

Please sign in to comment.