Home / File/ ReactFlightClientConfigBundlerParcel.js — react Source File

ReactFlightClientConfigBundlerParcel.js — react Source File

Architecture documentation for ReactFlightClientConfigBundlerParcel.js, a javascript file in the react codebase. 4 imports, 6 dependents.

File javascript BabelCompiler Validation 4 imports 6 dependents 1 functions

Entity Profile

Dependency Diagram

graph LR
  90ff5f50_37e1_106e_b9fe_73fac9d23b50["ReactFlightClientConfigBundlerParcel.js"]
  c067c5a7_60f7_4ceb_6b49_702f25837676["ReactFlightImportMetadata.js"]
  90ff5f50_37e1_106e_b9fe_73fac9d23b50 --> c067c5a7_60f7_4ceb_6b49_702f25837676
  d8f20c67_f5fa_0f0a_c967_c41fd9ffce07["ReactTypes"]
  90ff5f50_37e1_106e_b9fe_73fac9d23b50 --> d8f20c67_f5fa_0f0a_c967_c41fd9ffce07
  d760bfed_8ff4_8e36_bbe8_dd60e8ce6809["ReactFlightClientConfig"]
  90ff5f50_37e1_106e_b9fe_73fac9d23b50 --> d760bfed_8ff4_8e36_bbe8_dd60e8ce6809
  a413acd5_7541_e904_f255_d4dd9b5e5bc1["hasOwnProperty"]
  90ff5f50_37e1_106e_b9fe_73fac9d23b50 --> a413acd5_7541_e904_f255_d4dd9b5e5bc1
  b4d82078_5943_14f1_7e17_a996c772d165["ReactFlightClientConfigTargetParcelBrowser.js"]
  b4d82078_5943_14f1_7e17_a996c772d165 --> 90ff5f50_37e1_106e_b9fe_73fac9d23b50
  51a35347_53fc_b542_bf2d_211fcd7b229b["ReactFlightClientConfigTargetParcelServer.js"]
  51a35347_53fc_b542_bf2d_211fcd7b229b --> 90ff5f50_37e1_106e_b9fe_73fac9d23b50
  27a356d6_7c60_abf0_55b3_e519b8067657["ReactFlightDOMClientBrowser.js"]
  27a356d6_7c60_abf0_55b3_e519b8067657 --> 90ff5f50_37e1_106e_b9fe_73fac9d23b50
  845285f3_d774_521b_f24b_9ef17932fd5a["ReactFlightDOMServerBrowser.js"]
  845285f3_d774_521b_f24b_9ef17932fd5a --> 90ff5f50_37e1_106e_b9fe_73fac9d23b50
  d8e4f012_6027_f61a_67af_d4ab302f2534["ReactFlightDOMServerEdge.js"]
  d8e4f012_6027_f61a_67af_d4ab302f2534 --> 90ff5f50_37e1_106e_b9fe_73fac9d23b50
  a6747e72_942c_21c9_16dc_092e094259b8["ReactFlightDOMServerNode.js"]
  a6747e72_942c_21c9_16dc_092e094259b8 --> 90ff5f50_37e1_106e_b9fe_73fac9d23b50
  style 90ff5f50_37e1_106e_b9fe_73fac9d23b50 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

/**
 * Copyright (c) Meta Platforms, Inc. and affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 *
 * @flow
 */

import type {Thenable, ReactDebugInfo} from 'shared/ReactTypes';

import type {ImportMetadata} from '../shared/ReactFlightImportMetadata';

import {
  ID,
  NAME,
  BUNDLES,
  IMPORT_MAP,
} from '../shared/ReactFlightImportMetadata';
import {prepareDestinationWithChunks} from 'react-client/src/ReactFlightClientConfig';

import hasOwnProperty from 'shared/hasOwnProperty';

export type ServerManifest = {
  [string]: Array<string>,
};
export type SSRModuleMap = null;
export type ModuleLoading = null;
export type ServerConsumerModuleMap = null;
export type ServerReferenceId = string;

export opaque type ClientReferenceMetadata = ImportMetadata;

// eslint-disable-next-line no-unused-vars
export opaque type ClientReference<T> = ImportMetadata;

export function prepareDestinationForModule(
  moduleLoading: ModuleLoading,
  nonce: ?string,
  metadata: ClientReferenceMetadata,
) {
  prepareDestinationWithChunks(moduleLoading, metadata[BUNDLES], nonce);
}

export function resolveClientReference<T>(
  bundlerConfig: null,
  metadata: ClientReferenceMetadata,
): ClientReference<T> {
  // Reference is already resolved during the build.
  return metadata;
}

export function resolveServerReference<T>(
  bundlerConfig: ServerManifest,
  ref: ServerReferenceId,
): ClientReference<T> {
  const idx = ref.lastIndexOf('#');
  const id = ref.slice(0, idx);
  const name = ref.slice(idx + 1);
  const bundles = bundlerConfig[id];
  if (!bundles) {
    throw new Error('Invalid server action: ' + ref);
  }
  return [id, name, bundles];
}

export function preloadModule<T>(
  metadata: ClientReference<T>,
): null | Thenable<any> {
  if (metadata[IMPORT_MAP]) {
    parcelRequire.extendImportMap(metadata[IMPORT_MAP]);
  }

  if (metadata[BUNDLES].length === 0) {
    return null;
  }

  return Promise.all(metadata[BUNDLES].map(url => parcelRequire.load(url)));
}

export function requireModule<T>(metadata: ClientReference<T>): T {
  const moduleExports = parcelRequire(metadata[ID]);
  if (hasOwnProperty.call(moduleExports, metadata[NAME])) {
    return moduleExports[metadata[NAME]];
  }
  return (undefined: any);
}

export function getModuleDebugInfo<T>(
  metadata: ClientReference<T>,
): null | ReactDebugInfo {
  // TODO
  return null;
}

Domain

Subdomains

Dependencies

Frequently Asked Questions

What does ReactFlightClientConfigBundlerParcel.js do?
ReactFlightClientConfigBundlerParcel.js is a source file in the react codebase, written in javascript. It belongs to the BabelCompiler domain, Validation subdomain.
What functions are defined in ReactFlightClientConfigBundlerParcel.js?
ReactFlightClientConfigBundlerParcel.js defines 1 function(s): prepareDestinationForModule.
What does ReactFlightClientConfigBundlerParcel.js depend on?
ReactFlightClientConfigBundlerParcel.js imports 4 module(s): ReactFlightClientConfig, ReactFlightImportMetadata.js, ReactTypes, hasOwnProperty.
What files import ReactFlightClientConfigBundlerParcel.js?
ReactFlightClientConfigBundlerParcel.js is imported by 6 file(s): ReactFlightClientConfigTargetParcelBrowser.js, ReactFlightClientConfigTargetParcelServer.js, ReactFlightDOMClientBrowser.js, ReactFlightDOMServerBrowser.js, ReactFlightDOMServerEdge.js, ReactFlightDOMServerNode.js.
Where is ReactFlightClientConfigBundlerParcel.js in the architecture?
ReactFlightClientConfigBundlerParcel.js is located at packages/react-server-dom-parcel/src/client/ReactFlightClientConfigBundlerParcel.js (domain: BabelCompiler, subdomain: Validation, directory: packages/react-server-dom-parcel/src/client).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free