From 36e576f2ca3ef9571acf230d20c4166ba0fd05a3 Mon Sep 17 00:00:00 2001 From: Hendrik Liebau Date: Mon, 13 Mar 2023 16:03:19 +0100 Subject: [PATCH] Rename `RESOLVED_VALUE` to `RESOLVED_JSON_VALUE` in Flight client & Flight Reply server --- .../react-client/src/ReactFlightClient.js | 54 +++++++++---------- .../src/ReactFlightClientHostConfigStream.js | 7 ++- .../src/ReactFlightClientStream.js | 4 +- .../ReactFlightClientHostConfig.custom.js | 2 +- .../src/ReactNoopFlightClient.js | 4 +- .../src/ReactFlightDOMRelayClient.js | 4 +- .../ReactFlightDOMRelayClientHostConfig.js | 13 +++-- .../src/ReactFlightNativeRelayClient.js | 4 +- .../ReactFlightNativeRelayClientHostConfig.js | 13 +++-- .../src/ReactFlightReplyServer.js | 42 +++++++-------- 10 files changed, 78 insertions(+), 69 deletions(-) diff --git a/packages/react-client/src/ReactFlightClient.js b/packages/react-client/src/ReactFlightClient.js index b9f3d5c19a706..331db8ceab67c 100644 --- a/packages/react-client/src/ReactFlightClient.js +++ b/packages/react-client/src/ReactFlightClient.js @@ -22,7 +22,7 @@ import { resolveClientReference, preloadModule, requireModule, - parseValue, + parseJSONValue, } from './ReactFlightClientHostConfig'; import {knownServerReferences} from './ReactFlightServerReferenceRegistry'; @@ -43,7 +43,7 @@ export type JSONValue = const PENDING = 'pending'; const BLOCKED = 'blocked'; -const RESOLVED_VALUE = 'resolved_value'; +const RESOLVED_JSON_VALUE = 'resolved_json_value'; const RESOLVED_MODULE = 'resolved_module'; const INITIALIZED = 'fulfilled'; const ERRORED = 'rejected'; @@ -62,8 +62,8 @@ type BlockedChunk = { _response: Response, then(resolve: (T) => mixed, reject: (mixed) => mixed): void, }; -type ResolvedValueChunk = { - status: 'resolved_value', +type ResolvedJSONValueChunk = { + status: 'resolved_json_value', value: UninitializedValue, reason: null, _response: Response, @@ -93,7 +93,7 @@ type ErroredChunk = { type SomeChunk = | PendingChunk | BlockedChunk - | ResolvedValueChunk + | ResolvedJSONValueChunk | ResolvedModuleChunk | InitializedChunk | ErroredChunk; @@ -117,8 +117,8 @@ Chunk.prototype.then = function ( // If we have resolved content, we try to initialize it first which // might put us back into one of the other states. switch (chunk.status) { - case RESOLVED_VALUE: - initializeValueChunk(chunk); + case RESOLVED_JSON_VALUE: + initializeJSONValueChunk(chunk); break; case RESOLVED_MODULE: initializeModuleChunk(chunk); @@ -163,8 +163,8 @@ function readChunk(chunk: SomeChunk): T { // If we have resolved content, we try to initialize it first which // might put us back into one of the other states. switch (chunk.status) { - case RESOLVED_VALUE: - initializeValueChunk(chunk); + case RESOLVED_JSON_VALUE: + initializeJSONValueChunk(chunk); break; case RESOLVED_MODULE: initializeModuleChunk(chunk); @@ -249,12 +249,12 @@ function triggerErrorOnChunk(chunk: SomeChunk, error: mixed): void { } } -function createResolvedValueChunk( +function createResolvedJSONValueChunk( response: Response, value: UninitializedValue, -): ResolvedValueChunk { +): ResolvedJSONValueChunk { // $FlowFixMe Flow doesn't support functions as constructors - return new Chunk(RESOLVED_VALUE, value, null, response); + return new Chunk(RESOLVED_JSON_VALUE, value, null, response); } function createResolvedModuleChunk( @@ -265,7 +265,7 @@ function createResolvedModuleChunk( return new Chunk(RESOLVED_MODULE, value, null, response); } -function resolveValueChunk( +function resolveJSONValueChunk( chunk: SomeChunk, value: UninitializedValue, ): void { @@ -275,14 +275,14 @@ function resolveValueChunk( } const resolveListeners = chunk.value; const rejectListeners = chunk.reason; - const resolvedChunk: ResolvedValueChunk = (chunk: any); - resolvedChunk.status = RESOLVED_VALUE; + const resolvedChunk: ResolvedJSONValueChunk = (chunk: any); + resolvedChunk.status = RESOLVED_JSON_VALUE; resolvedChunk.value = value; if (resolveListeners !== null) { // This is unfortunate that we're reading this eagerly if // we already have listeners attached since they might no // longer be rendered or might not be the highest pri. - initializeValueChunk(resolvedChunk); + initializeJSONValueChunk(resolvedChunk); // The status might have changed after initialization. wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners); } @@ -307,15 +307,15 @@ function resolveModuleChunk( } } -let initializingChunk: ResolvedValueChunk = (null: any); +let initializingChunk: ResolvedJSONValueChunk = (null: any); let initializingChunkBlockedValue: null | {deps: number, value: any} = null; -function initializeValueChunk(chunk: ResolvedValueChunk): void { +function initializeJSONValueChunk(chunk: ResolvedJSONValueChunk): void { const prevChunk = initializingChunk; const prevBlocked = initializingChunkBlockedValue; initializingChunk = chunk; initializingChunkBlockedValue = null; try { - const value: T = parseValue(chunk._response, chunk.value); + const value: T = parseJSONValue(chunk._response, chunk.value); if ( initializingChunkBlockedValue !== null && initializingChunkBlockedValue.deps > 0 @@ -544,8 +544,8 @@ export function parseValueString( const id = parseInt(value.substring(2), 16); const chunk = getChunk(response, id); switch (chunk.status) { - case RESOLVED_VALUE: - initializeValueChunk(chunk); + case RESOLVED_JSON_VALUE: + initializeJSONValueChunk(chunk); break; } // The status might have changed after initialization. @@ -569,8 +569,8 @@ export function parseValueString( const id = parseInt(value.substring(1), 16); const chunk = getChunk(response, id); switch (chunk.status) { - case RESOLVED_VALUE: - initializeValueChunk(chunk); + case RESOLVED_JSON_VALUE: + initializeJSONValueChunk(chunk); break; case RESOLVED_MODULE: initializeModuleChunk(chunk); @@ -631,7 +631,7 @@ export function createResponse( return response; } -export function resolveValue( +export function resolveJSONValue( response: Response, id: number, value: UninitializedValue, @@ -639,9 +639,9 @@ export function resolveValue( const chunks = response._chunks; const chunk = chunks.get(id); if (!chunk) { - chunks.set(id, createResolvedValueChunk(response, value)); + chunks.set(id, createResolvedJSONValueChunk(response, value)); } else { - resolveValueChunk(chunk, value); + resolveJSONValueChunk(chunk, value); } } @@ -652,7 +652,7 @@ export function resolveModule( ): void { const chunks = response._chunks; const chunk = chunks.get(id); - const clientReferenceMetadata: ClientReferenceMetadata = parseValue( + const clientReferenceMetadata: ClientReferenceMetadata = parseJSONValue( response, value, ); diff --git a/packages/react-client/src/ReactFlightClientHostConfigStream.js b/packages/react-client/src/ReactFlightClientHostConfigStream.js index f8369a7c3bc08..bc7922626fafb 100644 --- a/packages/react-client/src/ReactFlightClientHostConfigStream.js +++ b/packages/react-client/src/ReactFlightClientHostConfigStream.js @@ -18,6 +18,9 @@ export type Response = ResponseBase & { export type UninitializedValue = string; -export function parseValue(response: Response, json: UninitializedValue): T { - return JSON.parse(json, response._fromJSON); +export function parseJSONValue( + response: Response, + value: UninitializedValue, +): T { + return JSON.parse(value, response._fromJSON); } diff --git a/packages/react-client/src/ReactFlightClientStream.js b/packages/react-client/src/ReactFlightClientStream.js index 524cbee9e6c05..8270eb9402f42 100644 --- a/packages/react-client/src/ReactFlightClientStream.js +++ b/packages/react-client/src/ReactFlightClientStream.js @@ -13,7 +13,7 @@ import type {SSRManifest} from './ReactFlightClientHostConfig'; import { resolveModule, - resolveValue, + resolveJSONValue, resolveErrorProd, resolveErrorDev, createResponse as createResponseBase, @@ -63,7 +63,7 @@ function processFullRow(response: Response, row: string): void { } default: { // We assume anything else is JSON. - resolveValue(response, id, row.substring(colon + 1)); + resolveJSONValue(response, id, row.substring(colon + 1)); return; } } diff --git a/packages/react-client/src/forks/ReactFlightClientHostConfig.custom.js b/packages/react-client/src/forks/ReactFlightClientHostConfig.custom.js index ef6884623c2f7..6a35502976b23 100644 --- a/packages/react-client/src/forks/ReactFlightClientHostConfig.custom.js +++ b/packages/react-client/src/forks/ReactFlightClientHostConfig.custom.js @@ -39,7 +39,7 @@ export const requireModule = $$$hostConfig.requireModule; export opaque type Source = mixed; export type UninitializedValue = string; -export const parseValue = $$$hostConfig.parseValue; +export const parseJSONValue = $$$hostConfig.parseJSONValue; export opaque type StringDecoder = mixed; // eslint-disable-line no-undef diff --git a/packages/react-noop-renderer/src/ReactNoopFlightClient.js b/packages/react-noop-renderer/src/ReactNoopFlightClient.js index a85112c621b64..3991e60eff42c 100644 --- a/packages/react-noop-renderer/src/ReactNoopFlightClient.js +++ b/packages/react-noop-renderer/src/ReactNoopFlightClient.js @@ -29,8 +29,8 @@ const {createResponse, processStringChunk, getRoot, close} = ReactFlightClient({ requireModule(idx: string) { return readModule(idx); }, - parseValue(response: Response, json) { - return JSON.parse(json, response._fromJSON); + parseJSONValue(response: Response, value) { + return JSON.parse(value, response._fromJSON); }, }); diff --git a/packages/react-server-dom-relay/src/ReactFlightDOMRelayClient.js b/packages/react-server-dom-relay/src/ReactFlightDOMRelayClient.js index d8c913620c571..22521c5b96725 100644 --- a/packages/react-server-dom-relay/src/ReactFlightDOMRelayClient.js +++ b/packages/react-server-dom-relay/src/ReactFlightDOMRelayClient.js @@ -13,7 +13,7 @@ import type {Response} from 'react-client/src/ReactFlightClient'; import { createResponse, - resolveValue, + resolveJSONValue, resolveModule, resolveErrorDev, resolveErrorProd, @@ -26,7 +26,7 @@ export {createResponse, close, getRoot}; export function resolveRow(response: Response, chunk: RowEncoding): void { if (chunk[0] === 'O') { // $FlowFixMe unable to refine on array indices - resolveValue(response, chunk[1], chunk[2]); + resolveJSONValue(response, chunk[1], chunk[2]); } else if (chunk[0] === 'I') { // $FlowFixMe unable to refine on array indices resolveModule(response, chunk[1], chunk[2]); diff --git a/packages/react-server-dom-relay/src/ReactFlightDOMRelayClientHostConfig.js b/packages/react-server-dom-relay/src/ReactFlightDOMRelayClientHostConfig.js index 6ebdb9a5856c5..16f0b18594d56 100644 --- a/packages/react-server-dom-relay/src/ReactFlightDOMRelayClientHostConfig.js +++ b/packages/react-server-dom-relay/src/ReactFlightDOMRelayClientHostConfig.js @@ -53,7 +53,7 @@ export function resolveServerReference( throw new Error('Not implemented.'); } -function parseValueRecursively( +function parseJSONValueRecursively( response: Response, parentObj: {+[key: string]: JSONValue} | $ReadOnlyArray, key: string, @@ -66,7 +66,7 @@ function parseValueRecursively( if (isArray(value)) { const parsedValue: Array<$FlowFixMe> = []; for (let i = 0; i < value.length; i++) { - (parsedValue: any)[i] = parseValueRecursively( + (parsedValue: any)[i] = parseJSONValueRecursively( response, value, '' + i, @@ -77,7 +77,7 @@ function parseValueRecursively( } else { const parsedValue = {}; for (const innerKey in value) { - (parsedValue: any)[innerKey] = parseValueRecursively( + (parsedValue: any)[innerKey] = parseJSONValueRecursively( response, value, innerKey, @@ -92,6 +92,9 @@ function parseValueRecursively( const dummy = {}; -export function parseValue(response: Response, json: UninitializedValue): T { - return (parseValueRecursively(response, dummy, '', json): any); +export function parseJSONValue( + response: Response, + value: UninitializedValue, +): T { + return (parseJSONValueRecursively(response, dummy, '', value): any); } diff --git a/packages/react-server-native-relay/src/ReactFlightNativeRelayClient.js b/packages/react-server-native-relay/src/ReactFlightNativeRelayClient.js index 535f787b0bfdc..b183f7593fde6 100644 --- a/packages/react-server-native-relay/src/ReactFlightNativeRelayClient.js +++ b/packages/react-server-native-relay/src/ReactFlightNativeRelayClient.js @@ -13,7 +13,7 @@ import type {Response} from 'react-client/src/ReactFlightClient'; import { createResponse, - resolveValue, + resolveJSONValue, resolveModule, resolveErrorDev, resolveErrorProd, @@ -26,7 +26,7 @@ export {createResponse, close, getRoot}; export function resolveRow(response: Response, chunk: RowEncoding): void { if (chunk[0] === 'O') { // $FlowFixMe `Chunk` doesn't flow into `JSONValue` because of the `E` row type. - resolveValue(response, chunk[1], chunk[2]); + resolveJSONValue(response, chunk[1], chunk[2]); } else if (chunk[0] === 'I') { // $FlowFixMe `Chunk` doesn't flow into `JSONValue` because of the `E` row type. resolveModule(response, chunk[1], chunk[2]); diff --git a/packages/react-server-native-relay/src/ReactFlightNativeRelayClientHostConfig.js b/packages/react-server-native-relay/src/ReactFlightNativeRelayClientHostConfig.js index 92d476f83ae24..2eed6aadda070 100644 --- a/packages/react-server-native-relay/src/ReactFlightNativeRelayClientHostConfig.js +++ b/packages/react-server-native-relay/src/ReactFlightNativeRelayClientHostConfig.js @@ -53,7 +53,7 @@ export function resolveServerReference( throw new Error('Not implemented.'); } -function parseValueRecursively( +function parseJSONValueRecursively( response: Response, parentObj: {+[key: string]: JSONValue} | $ReadOnlyArray, key: string, @@ -66,7 +66,7 @@ function parseValueRecursively( if (isArray(value)) { const parsedValue: Array<$FlowFixMe> = []; for (let i = 0; i < value.length; i++) { - (parsedValue: any)[i] = parseValueRecursively( + (parsedValue: any)[i] = parseJSONValueRecursively( response, value, '' + i, @@ -77,7 +77,7 @@ function parseValueRecursively( } else { const parsedValue = {}; for (const innerKey in value) { - (parsedValue: any)[innerKey] = parseValueRecursively( + (parsedValue: any)[innerKey] = parseJSONValueRecursively( response, value, innerKey, @@ -92,6 +92,9 @@ function parseValueRecursively( const dummy = {}; -export function parseValue(response: Response, json: UninitializedValue): T { - return (parseValueRecursively(response, dummy, '', json): any); +export function parseJSONValue( + response: Response, + json: UninitializedValue, +): T { + return (parseJSONValueRecursively(response, dummy, '', json): any); } diff --git a/packages/react-server/src/ReactFlightReplyServer.js b/packages/react-server/src/ReactFlightReplyServer.js index d4c5af97283f0..c37aff19c9ee5 100644 --- a/packages/react-server/src/ReactFlightReplyServer.js +++ b/packages/react-server/src/ReactFlightReplyServer.js @@ -34,7 +34,7 @@ export type JSONValue = const PENDING = 'pending'; const BLOCKED = 'blocked'; -const RESOLVED_VALUE = 'resolved_value'; +const RESOLVED_JSON_VALUE = 'resolved_json_value'; const INITIALIZED = 'fulfilled'; const ERRORED = 'rejected'; @@ -52,8 +52,8 @@ type BlockedChunk = { _response: Response, then(resolve: (T) => mixed, reject: (mixed) => mixed): void, }; -type ResolvedValueChunk = { - status: 'resolved_value', +type ResolvedJSONValueChunk = { + status: 'resolved_json_value', value: string, reason: null, _response: Response, @@ -76,7 +76,7 @@ type ErroredChunk = { type SomeChunk = | PendingChunk | BlockedChunk - | ResolvedValueChunk + | ResolvedJSONValueChunk | InitializedChunk | ErroredChunk; @@ -99,8 +99,8 @@ Chunk.prototype.then = function ( // If we have resolved content, we try to initialize it first which // might put us back into one of the other states. switch (chunk.status) { - case RESOLVED_VALUE: - initializeValueChunk(chunk); + case RESOLVED_JSON_VALUE: + initializeJSONValueChunk(chunk); break; } // The status might have changed after initialization. @@ -188,29 +188,29 @@ function triggerErrorOnChunk(chunk: SomeChunk, error: mixed): void { } } -function createResolvedValueChunk( +function createResolvedJSONValueChunk( response: Response, value: string, -): ResolvedValueChunk { +): ResolvedJSONValueChunk { // $FlowFixMe Flow doesn't support functions as constructors - return new Chunk(RESOLVED_VALUE, value, null, response); + return new Chunk(RESOLVED_JSON_VALUE, value, null, response); } -function resolveValueChunk(chunk: SomeChunk, value: string): void { +function resolveJSONValueChunk(chunk: SomeChunk, value: string): void { if (chunk.status !== PENDING) { // We already resolved. We didn't expect to see this. return; } const resolveListeners = chunk.value; const rejectListeners = chunk.reason; - const resolvedChunk: ResolvedValueChunk = (chunk: any); - resolvedChunk.status = RESOLVED_VALUE; + const resolvedChunk: ResolvedJSONValueChunk = (chunk: any); + resolvedChunk.status = RESOLVED_JSON_VALUE; resolvedChunk.value = value; if (resolveListeners !== null) { // This is unfortunate that we're reading this eagerly if // we already have listeners attached since they might no // longer be rendered or might not be the highest pri. - initializeValueChunk(resolvedChunk); + initializeJSONValueChunk(resolvedChunk); // The status might have changed after initialization. wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners); } @@ -257,9 +257,9 @@ function loadServerReference( return (null: any); } -let initializingChunk: ResolvedValueChunk = (null: any); +let initializingChunk: ResolvedJSONValueChunk = (null: any); let initializingChunkBlockedValue: null | {deps: number, value: any} = null; -function initializeValueChunk(chunk: ResolvedValueChunk): void { +function initializeJSONValueChunk(chunk: ResolvedJSONValueChunk): void { const prevChunk = initializingChunk; const prevBlocked = initializingChunkBlockedValue; initializingChunk = chunk; @@ -378,8 +378,8 @@ function parseValueString( // Server Reference const id = parseInt(value.substring(2), 16); const chunk = getChunk(response, id); - if (chunk.status === RESOLVED_VALUE) { - initializeValueChunk(chunk); + if (chunk.status === RESOLVED_JSON_VALUE) { + initializeJSONValueChunk(chunk); } if (chunk.status !== INITIALIZED) { // We know that this is emitted earlier so otherwise it's an error. @@ -407,8 +407,8 @@ function parseValueString( const id = parseInt(value.substring(1), 16); const chunk = getChunk(response, id); switch (chunk.status) { - case RESOLVED_VALUE: - initializeValueChunk(chunk); + case RESOLVED_JSON_VALUE: + initializeJSONValueChunk(chunk); break; } // The status might have changed after initialization. @@ -456,9 +456,9 @@ export function resolveField( const chunks = response._chunks; const chunk = chunks.get(id); if (!chunk) { - chunks.set(id, createResolvedValueChunk(response, value)); + chunks.set(id, createResolvedJSONValueChunk(response, value)); } else { - resolveValueChunk(chunk, value); + resolveJSONValueChunk(chunk, value); } }