UNPKG

8.26 kBJavaScriptView Raw
1/**
2 * Copyright (c) Facebook, Inc. and its affiliates.
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 *
8 * @format
9 */
10// flowlint ambiguous-object-type:error
11'use strict';
12
13var ConnectionHandler = require('./handlers/connection/ConnectionHandler');
14
15var ConnectionInterface = require('./handlers/connection/ConnectionInterface');
16
17var GraphQLTag = require('./query/GraphQLTag');
18
19var RelayConcreteNode = require('./util/RelayConcreteNode');
20
21var RelayConcreteVariables = require('./store/RelayConcreteVariables');
22
23var RelayDeclarativeMutationConfig = require('./mutations/RelayDeclarativeMutationConfig');
24
25var RelayDefaultHandleKey = require('./util/RelayDefaultHandleKey');
26
27var RelayDefaultHandlerProvider = require('./handlers/RelayDefaultHandlerProvider');
28
29var RelayError = require('./util/RelayError');
30
31var RelayFeatureFlags = require('./util/RelayFeatureFlags');
32
33var RelayModernEnvironment = require('./store/RelayModernEnvironment');
34
35var RelayModernOperationDescriptor = require('./store/RelayModernOperationDescriptor');
36
37var RelayModernRecord = require('./store/RelayModernRecord');
38
39var RelayModernSelector = require('./store/RelayModernSelector');
40
41var RelayModernStore = require('./store/RelayModernStore');
42
43var RelayNetwork = require('./network/RelayNetwork');
44
45var RelayObservable = require('./network/RelayObservable');
46
47var RelayOperationTracker = require('./store/RelayOperationTracker');
48
49var RelayProfiler = require('./util/RelayProfiler');
50
51var RelayQueryResponseCache = require('./network/RelayQueryResponseCache');
52
53var RelayRecordSource = require('./store/RelayRecordSource');
54
55var RelayReplaySubject = require('./util/RelayReplaySubject');
56
57var RelayStoreUtils = require('./store/RelayStoreUtils');
58
59var ViewerPattern = require('./store/ViewerPattern');
60
61var applyOptimisticMutation = require('./mutations/applyOptimisticMutation');
62
63var commitLocalUpdate = require('./mutations/commitLocalUpdate');
64
65var commitMutation = require('./mutations/commitMutation');
66
67var createFragmentSpecResolver = require('./store/createFragmentSpecResolver');
68
69var createPayloadFor3DField = require('./util/createPayloadFor3DField');
70
71var createRelayContext = require('./store/createRelayContext');
72
73var deepFreeze = require('./util/deepFreeze');
74
75var fetchQuery = require('./query/fetchQuery');
76
77var fetchQueryInternal = require('./query/fetchQueryInternal');
78
79var getFragmentIdentifier = require('./util/getFragmentIdentifier');
80
81var getRelayHandleKey = require('./util/getRelayHandleKey');
82
83var getRequestIdentifier = require('./util/getRequestIdentifier');
84
85var isPromise = require('./util/isPromise');
86
87var isRelayModernEnvironment = require('./store/isRelayModernEnvironment');
88
89var isScalarAndEqual = require('./util/isScalarAndEqual');
90
91var readInlineData = require('./store/readInlineData');
92
93var recycleNodesInto = require('./util/recycleNodesInto');
94
95var requestSubscription = require('./subscription/requestSubscription');
96
97var stableCopy = require('./util/stableCopy');
98
99var _require = require('./store/ClientID'),
100 generateClientID = _require.generateClientID,
101 generateUniqueClientID = _require.generateUniqueClientID,
102 isClientID = _require.isClientID;
103
104// As early as possible, check for the existence of the JavaScript globals which
105// Relay Runtime relies upon, and produce a clear message if they do not exist.
106if (process.env.NODE_ENV !== "production") {
107 var mapStr = typeof Map !== 'function' ? 'Map' : null;
108 var setStr = typeof Set !== 'function' ? 'Set' : null;
109 var promiseStr = typeof Promise !== 'function' ? 'Promise' : null;
110 var objStr = typeof Object.assign !== 'function' ? 'Object.assign' : null;
111
112 if (mapStr || setStr || promiseStr || objStr) {
113 throw new Error("relay-runtime requires ".concat([mapStr, setStr, promiseStr, objStr].filter(Boolean).join(', and '), " to exist. ") + 'Use a polyfill to provide these for older browsers.');
114 }
115}
116/**
117 * The public interface to Relay Runtime.
118 */
119
120
121module.exports = {
122 // Core API
123 Environment: RelayModernEnvironment,
124 Network: RelayNetwork,
125 Observable: RelayObservable,
126 QueryResponseCache: RelayQueryResponseCache,
127 RecordSource: RelayRecordSource,
128 Record: RelayModernRecord,
129 ReplaySubject: RelayReplaySubject,
130 Store: RelayModernStore,
131 areEqualSelectors: RelayModernSelector.areEqualSelectors,
132 createFragmentSpecResolver: createFragmentSpecResolver,
133 createNormalizationSelector: RelayModernSelector.createNormalizationSelector,
134 createOperationDescriptor: RelayModernOperationDescriptor.createOperationDescriptor,
135 createReaderSelector: RelayModernSelector.createReaderSelector,
136 createRequestDescriptor: RelayModernOperationDescriptor.createRequestDescriptor,
137 getDataIDsFromFragment: RelayModernSelector.getDataIDsFromFragment,
138 getDataIDsFromObject: RelayModernSelector.getDataIDsFromObject,
139 getFragment: GraphQLTag.getFragment,
140 getInlineDataFragment: GraphQLTag.getInlineDataFragment,
141 getModuleComponentKey: RelayStoreUtils.getModuleComponentKey,
142 getModuleOperationKey: RelayStoreUtils.getModuleOperationKey,
143 getPaginationFragment: GraphQLTag.getPaginationFragment,
144 getPluralSelector: RelayModernSelector.getPluralSelector,
145 getRefetchableFragment: GraphQLTag.getRefetchableFragment,
146 getRequest: GraphQLTag.getRequest,
147 getRequestIdentifier: getRequestIdentifier,
148 getSelector: RelayModernSelector.getSelector,
149 getSelectorsFromObject: RelayModernSelector.getSelectorsFromObject,
150 getSingularSelector: RelayModernSelector.getSingularSelector,
151 getStorageKey: RelayStoreUtils.getStorageKey,
152 getVariablesFromFragment: RelayModernSelector.getVariablesFromFragment,
153 getVariablesFromObject: RelayModernSelector.getVariablesFromObject,
154 getVariablesFromPluralFragment: RelayModernSelector.getVariablesFromPluralFragment,
155 getVariablesFromSingularFragment: RelayModernSelector.getVariablesFromSingularFragment,
156 graphql: GraphQLTag.graphql,
157 readInlineData: readInlineData,
158 // Declarative mutation API
159 MutationTypes: RelayDeclarativeMutationConfig.MutationTypes,
160 RangeOperations: RelayDeclarativeMutationConfig.RangeOperations,
161 // Extensions
162 DefaultHandlerProvider: RelayDefaultHandlerProvider,
163 ConnectionHandler: ConnectionHandler,
164 VIEWER_ID: ViewerPattern.VIEWER_ID,
165 VIEWER_TYPE: ViewerPattern.VIEWER_TYPE,
166 // Helpers (can be implemented via the above API)
167 applyOptimisticMutation: applyOptimisticMutation,
168 commitLocalUpdate: commitLocalUpdate,
169 commitMutation: commitMutation,
170 fetchQuery: fetchQuery,
171 isRelayModernEnvironment: isRelayModernEnvironment,
172 requestSubscription: requestSubscription,
173 // Configuration interface for legacy or special uses
174 ConnectionInterface: ConnectionInterface,
175 // Utilities
176 RelayProfiler: RelayProfiler,
177 createPayloadFor3DField: createPayloadFor3DField,
178 // INTERNAL-ONLY: These exports might be removed at any point.
179 RelayConcreteNode: RelayConcreteNode,
180 RelayError: RelayError,
181 RelayFeatureFlags: RelayFeatureFlags,
182 DEFAULT_HANDLE_KEY: RelayDefaultHandleKey.DEFAULT_HANDLE_KEY,
183 FRAGMENTS_KEY: RelayStoreUtils.FRAGMENTS_KEY,
184 FRAGMENT_OWNER_KEY: RelayStoreUtils.FRAGMENT_OWNER_KEY,
185 ID_KEY: RelayStoreUtils.ID_KEY,
186 REF_KEY: RelayStoreUtils.REF_KEY,
187 REFS_KEY: RelayStoreUtils.REFS_KEY,
188 ROOT_ID: RelayStoreUtils.ROOT_ID,
189 ROOT_TYPE: RelayStoreUtils.ROOT_TYPE,
190 TYPENAME_KEY: RelayStoreUtils.TYPENAME_KEY,
191 deepFreeze: deepFreeze,
192 generateClientID: generateClientID,
193 generateUniqueClientID: generateUniqueClientID,
194 getRelayHandleKey: getRelayHandleKey,
195 isClientID: isClientID,
196 isPromise: isPromise,
197 isScalarAndEqual: isScalarAndEqual,
198 recycleNodesInto: recycleNodesInto,
199 stableCopy: stableCopy,
200 getFragmentIdentifier: getFragmentIdentifier,
201 __internal: {
202 OperationTracker: RelayOperationTracker,
203 createRelayContext: createRelayContext,
204 getOperationVariables: RelayConcreteVariables.getOperationVariables,
205 fetchQuery: fetchQueryInternal.fetchQuery,
206 fetchQueryDeduped: fetchQueryInternal.fetchQueryDeduped,
207 getPromiseForActiveRequest: fetchQueryInternal.getPromiseForActiveRequest,
208 getObservableForActiveRequest: fetchQueryInternal.getObservableForActiveRequest
209 }
210};
\No newline at end of file