Skip to content

Commit f16344e

Browse files
authored
Refactor React Server entrypoint to not depend on the client one (#27940)
This refactors the Server Components entrypoint for the `react` package (ReactServer.js) so that it doesn't depend on the client entrypoint (React.js). I also renamed React.js to ReactClient.js to make the separation clearer. This structure will make it easier to add client-only and server-only features.
1 parent 5d1b15a commit f16344e

11 files changed

+695
-608
lines changed

packages/react/index.classic.fb.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,5 +58,5 @@ export {
5858
useSyncExternalStore,
5959
useTransition,
6060
version,
61-
} from './src/React';
61+
} from './src/ReactClient';
6262
export {jsx, jsxs, jsxDEV} from './src/jsx/ReactJSX';

packages/react/index.experimental.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,9 @@ export {
5757
useSyncExternalStore,
5858
useTransition,
5959
version,
60-
} from './src/React';
60+
} from './src/ReactClient';
6161

62-
import {useOptimistic} from './src/React';
62+
import {useOptimistic} from './src/ReactClient';
6363

6464
export function experimental_useOptimistic<S, A>(
6565
passthrough: S,

packages/react/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,4 +80,4 @@ export {
8080
useState,
8181
useTransition,
8282
version,
83-
} from './src/React';
83+
} from './src/ReactClient';

packages/react/index.modern.fb.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,5 +56,5 @@ export {
5656
useSyncExternalStore,
5757
useTransition,
5858
version,
59-
} from './src/React';
59+
} from './src/ReactClient';
6060
export {jsx, jsxs, jsxDEV} from './src/jsx/ReactJSX';

packages/react/index.stable.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,4 +47,4 @@ export {
4747
useSyncExternalStore,
4848
useTransition,
4949
version,
50-
} from './src/React';
50+
} from './src/ReactClient';

packages/react/src/React.js renamed to packages/react/src/ReactClient.js

Lines changed: 4 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@ import {Component, PureComponent} from './ReactBaseClasses';
2626
import {createRef} from './ReactCreateRef';
2727
import {forEach, map, count, toArray, only} from './ReactChildren';
2828
import {
29-
createElement as createElementProd,
30-
createFactory as createFactoryProd,
31-
cloneElement as cloneElementProd,
29+
createElement,
30+
createFactory,
31+
cloneElement,
3232
isValidElement,
3333
} from './ReactElement';
3434
import {createContext} from './ReactContext';
@@ -61,27 +61,12 @@ import {
6161
useMemoCache,
6262
useOptimistic,
6363
} from './ReactHooks';
64-
import {
65-
createElementWithValidation,
66-
createFactoryWithValidation,
67-
cloneElementWithValidation,
68-
} from './ReactElementValidator';
64+
6965
import {createServerContext} from './ReactServerContext';
7066
import ReactSharedInternals from './ReactSharedInternalsClient';
7167
import {startTransition} from './ReactStartTransition';
7268
import {act} from './ReactAct';
7369

74-
// TODO: Move this branching into the other module instead and just re-export.
75-
const createElement: any = __DEV__
76-
? createElementWithValidation
77-
: createElementProd;
78-
const cloneElement: any = __DEV__
79-
? cloneElementWithValidation
80-
: cloneElementProd;
81-
const createFactory: any = __DEV__
82-
? createFactoryWithValidation
83-
: createFactoryProd;
84-
8570
const Children = {
8671
map,
8772
forEach,

0 commit comments

Comments
 (0)