From 4d9210434af811e545f34bcac44528955ac30a4b Mon Sep 17 00:00:00 2001 From: Tianyu Yao Date: Mon, 25 Jul 2022 14:51:17 -0700 Subject: [PATCH] Use ModuleImport module providers in runtime Reviewed By: voideanvalue Differential Revision: D38007238 fbshipit-source-id: b405e4c122e365f46371f1896f48d230cb3a728f --- packages/relay-runtime/index.js | 1 + packages/relay-runtime/store/RelayResponseNormalizer.js | 6 ++++-- packages/relay-runtime/util/NormalizationNode.js | 9 +++++++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/packages/relay-runtime/index.js b/packages/relay-runtime/index.js index b6fdb263a4616..083387aee847e 100644 --- a/packages/relay-runtime/index.js +++ b/packages/relay-runtime/index.js @@ -173,6 +173,7 @@ export type { NormalizationLinkedHandle, NormalizationLocalArgumentDefinition, NormalizationModuleImport, + NormalizationRootNode, NormalizationScalarField, NormalizationSelection, NormalizationSplitOperation, diff --git a/packages/relay-runtime/store/RelayResponseNormalizer.js b/packages/relay-runtime/store/RelayResponseNormalizer.js index a0213cd2f608f..ecdc036bd11b7 100644 --- a/packages/relay-runtime/store/RelayResponseNormalizer.js +++ b/packages/relay-runtime/store/RelayResponseNormalizer.js @@ -444,14 +444,16 @@ class RelayResponseNormalizer { ); const typeName: string = RelayModernRecord.getType(record); const componentKey = getModuleComponentKey(moduleImport.documentName); - const componentReference = data[componentKey]; + const componentReference = + moduleImport.componentModuleProvider || data[componentKey]; RelayModernRecord.setValue( record, componentKey, componentReference ?? null, ); const operationKey = getModuleOperationKey(moduleImport.documentName); - const operationReference = data[operationKey]; + const operationReference = + moduleImport.operationModuleProvider || data[operationKey]; RelayModernRecord.setValue( record, operationKey, diff --git a/packages/relay-runtime/util/NormalizationNode.js b/packages/relay-runtime/util/NormalizationNode.js index d5997c44b7c93..a3fe53367812d 100644 --- a/packages/relay-runtime/util/NormalizationNode.js +++ b/packages/relay-runtime/util/NormalizationNode.js @@ -11,6 +11,7 @@ 'use strict'; import type {ConcreteRequest} from './RelayConcreteNode'; +import type {JSResourceReference} from 'JSResourceReference'; /** * Represents a single operation used to processing and normalize runtime @@ -114,6 +115,14 @@ export type NormalizationModuleImport = { +documentName: string, +fragmentPropName: string, +fragmentName: string, + +componentModuleProvider?: () => + | mixed + | Promise + | JSResourceReference, + +operationModuleProvider?: () => + | NormalizationRootNode + | Promise + | JSResourceReference, }; export type NormalizationListValueArgument = {