Skip to content

Commit

Permalink
Move ReactServerSharedInternals on to ReactSharedInternalsServer
Browse files Browse the repository at this point in the history
Really the top level secret export should just be forked into two different
versions. This was just trying to move some earlier than others.
  • Loading branch information
sebmarkbage committed Apr 8, 2024
1 parent b88c7ba commit d069348
Show file tree
Hide file tree
Showing 10 changed files with 49 additions and 84 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ module.exports = function register() {
}).body;
} catch (x) {
// eslint-disable-next-line react-internal/no-production-logging
console.error('Error parsing %s %s', url, x.message);
console['error']('Error parsing %s %s', url, x.message);
return originalCompile.apply(this, arguments);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ module.exports = function register() {
}).body;
} catch (x) {
// eslint-disable-next-line react-internal/no-production-logging
console.error('Error parsing %s %s', url, x.message);
console['error']('Error parsing %s %s', url, x.message);
return originalCompile.apply(this, arguments);
}

Expand Down
3 changes: 1 addition & 2 deletions packages/react-server/src/ReactFlightServer.js
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,6 @@ import {
import type {SharedStateServer} from 'react/src/ReactSharedInternalsServer';
import ReactSharedInternalsImpl from 'shared/ReactSharedInternals';
const ReactSharedInternals: SharedStateServer = (ReactSharedInternalsImpl: any);
import ReactServerSharedInternals from './ReactServerSharedInternals';
import isArray from 'shared/isArray';
import getPrototypeOf from 'shared/getPrototypeOf';
import binaryToComparableString from 'shared/binaryToComparableString';
Expand Down Expand Up @@ -307,7 +306,7 @@ const {
TaintRegistryValues,
TaintRegistryByteLengths,
TaintRegistryPendingRequests,
} = ReactServerSharedInternals;
} = ReactSharedInternals;

function throwTaintViolation(message: string) {
// eslint-disable-next-line react-internal/prod-error-codes
Expand Down
24 changes: 0 additions & 24 deletions packages/react-server/src/ReactServerSharedInternals.js

This file was deleted.

2 changes: 0 additions & 2 deletions packages/react/src/ReactServer.experimental.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,6 @@ import './ReactFetch';

export {default as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED} from './ReactSharedInternalsServer';

export {default as __SECRET_SERVER_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED} from './ReactServerSharedInternals';

import {forEach, map, count, toArray, only} from './ReactChildren';
import {
REACT_FRAGMENT_TYPE,
Expand Down
2 changes: 0 additions & 2 deletions packages/react/src/ReactServer.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,6 @@ import './ReactFetch';

export {default as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED} from './ReactSharedInternalsServer';

export {default as __SECRET_SERVER_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED} from './ReactServerSharedInternals';

import {forEach, map, count, toArray, only} from './ReactChildren';
import {
REACT_FRAGMENT_TYPE,
Expand Down
44 changes: 0 additions & 44 deletions packages/react/src/ReactServerSharedInternals.js

This file was deleted.

29 changes: 28 additions & 1 deletion packages/react/src/ReactSharedInternalsServer.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,31 @@ import type {Dispatcher} from 'react-reconciler/src/ReactInternalTypes';
import type {CacheDispatcher} from 'react-reconciler/src/ReactInternalTypes';
import type {ReactComponentInfo} from 'shared/ReactTypes';

import {disableStringRefs} from 'shared/ReactFeatureFlags';
import type {
Reference,
TaintEntry,
RequestCleanupQueue,
} from './ReactTaintRegistry';

import {
TaintRegistryObjects,
TaintRegistryValues,
TaintRegistryByteLengths,
TaintRegistryPendingRequests,
} from './ReactTaintRegistry';

import {disableStringRefs, enableTaint} from 'shared/ReactFeatureFlags';

export type SharedStateServer = {
H: null | Dispatcher, // ReactCurrentDispatcher for Hooks
C: null | CacheDispatcher, // ReactCurrentCache for Cache

// enableTaint
TaintRegistryObjects: WeakMap<Reference, string>,
TaintRegistryValues: Map<string | bigint, TaintEntry>,
TaintRegistryByteLengths: Set<number>,
TaintRegistryPendingRequests: Set<RequestCleanupQueue>,

// DEV-only-ish
owner: null | ReactComponentInfo, // ReactCurrentOwner is ReactComponentInfo in Flight, null in Fizz. Fiber/Fizz uses SharedStateClient.

Expand All @@ -33,6 +52,14 @@ const ReactSharedInternals: SharedStateServer = ({
C: null,
}: any);

if (enableTaint) {
ReactSharedInternals.TaintRegistryObjects = TaintRegistryObjects;
ReactSharedInternals.TaintRegistryValues = TaintRegistryValues;
ReactSharedInternals.TaintRegistryByteLengths = TaintRegistryByteLengths;
ReactSharedInternals.TaintRegistryPendingRequests =
TaintRegistryPendingRequests;
}

if (__DEV__ || !disableStringRefs) {
ReactSharedInternals.owner = null;
}
Expand Down
4 changes: 2 additions & 2 deletions packages/react/src/ReactTaint.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,13 @@ import getPrototypeOf from 'shared/getPrototypeOf';

import binaryToComparableString from 'shared/binaryToComparableString';

import ReactServerSharedInternals from './ReactServerSharedInternals';
import ReactSharedInternals from './ReactSharedInternalsServer';
const {
TaintRegistryObjects,
TaintRegistryValues,
TaintRegistryByteLengths,
TaintRegistryPendingRequests,
} = ReactServerSharedInternals;
} = ReactSharedInternals;

interface Reference {}

Expand Down
21 changes: 16 additions & 5 deletions scripts/jest/setupHostConfigs.js
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,11 @@ function mockReact() {
);
return jest.requireActual(resolvedEntryPoint);
});
// Make it possible to import this module inside
// the React package itself.
jest.mock('shared/ReactSharedInternals', () => {
return jest.requireActual('react/src/ReactSharedInternalsClient');
});
}

// When we want to unmock React we really need to mock it again.
Expand All @@ -54,6 +59,10 @@ global.__unmockReact = mockReact;
mockReact();

jest.mock('react/react.react-server', () => {
// If we're requiring an RSC environment, use those internals instead.
jest.mock('shared/ReactSharedInternals', () => {
return jest.requireActual('react/src/ReactSharedInternalsServer');
});
const resolvedEntryPoint = resolveEntryFork(
require.resolve('react/src/ReactServer'),
global.__WWW__
Expand Down Expand Up @@ -161,11 +170,13 @@ inlinedHostConfigs.forEach(rendererInfo => {
});
});

// Make it possible to import this module inside
// the React package itself.
jest.mock('shared/ReactSharedInternals', () =>
jest.requireActual('react/src/ReactSharedInternalsClient')
);
jest.mock('react-server/src/ReactFlightServer', () => {
// If we're requiring an RSC environment, use those internals instead.
jest.mock('shared/ReactSharedInternals', () => {
return jest.requireActual('react/src/ReactSharedInternalsServer');
});
return jest.requireActual('react-server/src/ReactFlightServer');
});

// Make it possible to import this module inside
// the ReactDOM package itself.
Expand Down

0 comments on commit d069348

Please sign in to comment.