diff --git a/packages/react-relay/ReactRelayTypes.js b/packages/react-relay/ReactRelayTypes.js index f84b9f410580..99a9392bf96c 100644 --- a/packages/react-relay/ReactRelayTypes.js +++ b/packages/react-relay/ReactRelayTypes.js @@ -14,7 +14,7 @@ import type { Disposable, - FragmentReference, + FragmentType, GraphQLTaggedNode, IEnvironment, Observer, @@ -107,12 +107,12 @@ export type $RelayProps = $ObjMap< $Diff, & (( T) => T) & ((?T) => ?T) - & (( T ) => $FragmentRef ) - & ((? T ) => ? $FragmentRef ) - & (( $ReadOnlyArray< T>) => $ReadOnlyArray< $FragmentRef>) - & ((?$ReadOnlyArray< T>) => ?$ReadOnlyArray< $FragmentRef>) - & (( $ReadOnlyArray) => $ReadOnlyArray>) - & ((?$ReadOnlyArray) => ?$ReadOnlyArray>) + & (( T ) => $FragmentRef ) + & ((? T ) => ? $FragmentRef ) + & (( $ReadOnlyArray< T>) => $ReadOnlyArray< $FragmentRef>) + & ((?$ReadOnlyArray< T>) => ?$ReadOnlyArray< $FragmentRef>) + & (( $ReadOnlyArray) => $ReadOnlyArray>) + & ((?$ReadOnlyArray) => ?$ReadOnlyArray>) & ((T) => T), >; diff --git a/packages/relay-runtime/index.js b/packages/relay-runtime/index.js index 97b87b62e296..082821a7ab4e 100644 --- a/packages/relay-runtime/index.js +++ b/packages/relay-runtime/index.js @@ -118,7 +118,9 @@ export type {RecordState} from './store/RelayRecordState'; export type { ExecuteMutationConfig, FragmentMap, - FragmentReference, + // DEPRECATED: use FragmentType instead of FragmentReference + FragmentType as FragmentReference, + FragmentType, FragmentSpecResolver, HandleFieldPayload, IEnvironment, diff --git a/packages/relay-runtime/store/RelayStoreTypes.js b/packages/relay-runtime/store/RelayStoreTypes.js index 776aa5ee8637..d07919805372 100644 --- a/packages/relay-runtime/store/RelayStoreTypes.js +++ b/packages/relay-runtime/store/RelayStoreTypes.js @@ -50,7 +50,7 @@ import type {InvalidationState} from './RelayModernStore'; import type RelayOperationTracker from './RelayOperationTracker'; import type {RecordState} from './RelayRecordState'; -export opaque type FragmentReference = empty; +export opaque type FragmentType = empty; export type OperationTracker = RelayOperationTracker; export type MutationParameters = {| diff --git a/packages/relay-runtime/store/ResolverFragments.js b/packages/relay-runtime/store/ResolverFragments.js index 7f949ed1f034..ea256a6b2ddf 100644 --- a/packages/relay-runtime/store/ResolverFragments.js +++ b/packages/relay-runtime/store/ResolverFragments.js @@ -13,10 +13,7 @@ 'use strict'; import type {GraphQLTaggedNode} from '../query/GraphQLTag'; -import type { - FragmentReference, - SingularReaderSelector, -} from './RelayStoreTypes'; +import type {FragmentType, SingularReaderSelector} from './RelayStoreTypes'; const {getFragment} = require('../query/GraphQLTag'); const {getSelector} = require('./RelayModernSelector'); @@ -27,10 +24,7 @@ const invariant = require('invariant'); // about what resolver is being executed, which is supplied by putting the // info on this stack before we call the resolver function. type ResolverContext = {| - getDataForResolverFragment: ( - SingularReaderSelector, - FragmentReference, - ) => mixed, + getDataForResolverFragment: (SingularReaderSelector, FragmentType) => mixed, |}; const contextStack: Array = []; @@ -53,17 +47,17 @@ function withResolverContext(context: ResolverContext, cb: () => T): T { // - array of nullable if the privoided ref type is an array of nullable refs declare function readFragment< - TKey: {+$data?: mixed, +$fragmentRefs: FragmentReference, ...}, + TKey: {+$data?: mixed, +$fragmentRefs: FragmentType, ...}, >( fragmentInput: GraphQLTaggedNode, - fragmentRef: TKey, + fragmentKey: TKey, ): $Call<({+$data?: TFragmentData, ...}) => TFragmentData, TKey>; declare function readFragment< - TKey: ?{+$data?: mixed, +$fragmentRefs: FragmentReference, ...}, + TKey: ?{+$data?: mixed, +$fragmentRefs: FragmentType, ...}, >( fragmentInput: GraphQLTaggedNode, - fragmentRef: TKey, + fragmentKey: TKey, ): $Call< (?{+$data?: TFragmentData, ...}) => ?TFragmentData, TKey, @@ -72,12 +66,12 @@ declare function readFragment< declare function readFragment< TKey: $ReadOnlyArray<{ +$data?: mixed, - +$fragmentRefs: FragmentReference, + +$fragmentRefs: FragmentType, ... }>, >( fragmentInput: GraphQLTaggedNode, - fragmentRef: TKey, + fragmentKey: TKey, ): $Call< ( $ReadOnlyArray<{+$data?: TFragmentData, ...}>, @@ -88,12 +82,12 @@ declare function readFragment< declare function readFragment< TKey: ?$ReadOnlyArray<{ +$data?: mixed, - +$fragmentRefs: FragmentReference, + +$fragmentRefs: FragmentType, ... }>, >( fragmentInput: GraphQLTaggedNode, - fragmentRef: TKey, + fragmentKey: TKey, ): $Call< ( ?$ReadOnlyArray<{+$data?: TFragmentData, ...}>, @@ -101,10 +95,7 @@ declare function readFragment< TKey, >; -function readFragment( - fragmentInput: GraphQLTaggedNode, - fragmentRef: FragmentReference, -): mixed { +function readFragment(fragmentInput, fragmentKey): mixed { if (!contextStack.length) { throw new Error( 'readFragment should be called only from within a Relay Resolver function.', @@ -112,7 +103,7 @@ function readFragment( } const context = contextStack[contextStack.length - 1]; const fragmentNode = getFragment(fragmentInput); - const fragmentSelector = getSelector(fragmentNode, fragmentRef); + const fragmentSelector = getSelector(fragmentNode, fragmentKey); invariant( fragmentSelector != null, `Expected a selector for the fragment of the resolver ${fragmentNode.name}, but got null.`, @@ -121,7 +112,7 @@ function readFragment( fragmentSelector.kind === 'SingularReaderSelector', `Expected a singular reader selector for the fragment of the resolver ${fragmentNode.name}, but it was plural.`, ); - return context.getDataForResolverFragment(fragmentSelector, fragmentRef); + return context.getDataForResolverFragment(fragmentSelector, fragmentKey); } module.exports = {readFragment, withResolverContext}; diff --git a/packages/relay-runtime/store/readInlineData.js b/packages/relay-runtime/store/readInlineData.js index f32f360d8270..138a84689777 100644 --- a/packages/relay-runtime/store/readInlineData.js +++ b/packages/relay-runtime/store/readInlineData.js @@ -13,7 +13,7 @@ 'use strict'; import type {GraphQLTaggedNode} from '../query/GraphQLTag'; -import type {FragmentReference} from './RelayStoreTypes'; +import type {FragmentType} from './RelayStoreTypes'; const {getInlineDataFragment} = require('../query/GraphQLTag'); const {FRAGMENTS_KEY} = require('./RelayStoreUtils'); @@ -24,11 +24,11 @@ const invariant = require('invariant'); */ declare function readInlineData< - TRef: FragmentReference, + TFragmentType: FragmentType, TData, TKey: { +$data?: TData, - +$fragmentRefs: TRef, + +$fragmentRefs: TFragmentType, ... }, >( @@ -36,11 +36,11 @@ declare function readInlineData< fragmentRef: TKey, ): TData; declare function readInlineData< - TRef: FragmentReference, + TFragmentType: FragmentType, TData, TKey: ?{ +$data?: TData, - +$fragmentRefs: TRef, + +$fragmentRefs: TFragmentType, ... }, >(