MCPcopy Index your code
hub / github.com/react/react / loadServerReference

Function loadServerReference

packages/react-server/src/ReactFlightActionServer.js:46–76  ·  view source on GitHub ↗
(
  bundlerConfig: ServerManifest,
  metaData: {
    id: string,
    bound: null | Promise<Array<any>>,
  },
)

Source from the content-addressed store, hash-verified

44}
45
46function loadServerReference<T>(
47 bundlerConfig: ServerManifest,
48 metaData: {
49 id: string,
50 bound: null | Promise<Array<any>>,
51 },
52): Promise<T> {
53 const id: ServerReferenceId = metaData.id;
54 if (typeof id !== 'string') {
55 return (null: any);
56 }
57 const serverReference: ServerReference<T> =
58 resolveServerReference<$FlowFixMe>(bundlerConfig, id);
59 // We expect most servers to not really need this because you'd just have all
60 // the relevant modules already loaded but it allows for lazy loading of code
61 // if needed.
62 const preloadPromise = preloadModule(serverReference);
63 const bound = metaData.bound;
64 if (bound instanceof Promise) {
65 return Promise.all([(bound: any), preloadPromise]).then(
66 ([args]: Array<any>) => bindArgs(requireModule(serverReference), args),
67 );
68 } else if (preloadPromise) {
69 return Promise.resolve(preloadPromise).then(() =>
70 requireModule(serverReference),
71 );
72 } else {
73 // Synchronously available
74 return Promise.resolve(requireModule(serverReference));
75 }
76}
77
78function decodeBoundActionMetaData(
79 body: FormData,

Callers 1

decodeActionFunction · 0.85

Calls 5

resolveServerReferenceFunction · 0.90
preloadModuleFunction · 0.90
requireModuleFunction · 0.90
bindArgsFunction · 0.85
thenMethod · 0.65

Tested by

no test coverage detected