UNPKG

2.41 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 * @emails oncall+relay
8 *
9 * @format
10 */
11// flowlint ambiguous-object-type:error
12'use strict';
13
14var getRefetchMetadata = require('./getRefetchMetadata');
15
16var invariant = require("fbjs/lib/invariant");
17
18function getPaginationMetadata(fragmentNode, componentDisplayName) {
19 var _fragmentNode$metadat, _fragmentNode$metadat2;
20
21 var _getRefetchMetadata = getRefetchMetadata(fragmentNode, componentDisplayName),
22 paginationRequest = _getRefetchMetadata.refetchableRequest,
23 refetchMetadata = _getRefetchMetadata.refetchMetadata;
24
25 var paginationMetadata = refetchMetadata.connection;
26 !(paginationMetadata != null) ? process.env.NODE_ENV !== "production" ? invariant(false, 'Relay: getPaginationMetadata(): Expected fragment `%s` to include a ' + 'connection when using `%s`. Did you forget to add a @connection ' + 'directive to the connection field in the fragment?', componentDisplayName, fragmentNode.name) : invariant(false) : void 0;
27 var connectionPathInFragmentData = paginationMetadata.path;
28 var connectionMetadata = ((_fragmentNode$metadat = (_fragmentNode$metadat2 = fragmentNode.metadata) === null || _fragmentNode$metadat2 === void 0 ? void 0 : _fragmentNode$metadat2.connection) !== null && _fragmentNode$metadat !== void 0 ? _fragmentNode$metadat : [])[0];
29 !(connectionMetadata != null) ? process.env.NODE_ENV !== "production" ? invariant(false, 'Relay: getPaginationMetadata(): Expected fragment `%s` to include a ' + 'connection when using `%s`. Did you forget to add a @connection ' + 'directive to the connection field in the fragment?', componentDisplayName, fragmentNode.name) : invariant(false) : void 0;
30 var identifierField = refetchMetadata.identifierField;
31 !(identifierField == null || typeof identifierField === 'string') ? process.env.NODE_ENV !== "production" ? invariant(false, 'Relay: getRefetchMetadata(): Expected `identifierField` to be a string.') : invariant(false) : void 0;
32 return {
33 connectionPathInFragmentData: connectionPathInFragmentData,
34 identifierField: identifierField,
35 paginationRequest: paginationRequest,
36 paginationMetadata: paginationMetadata,
37 stream: connectionMetadata.stream === true
38 };
39}
40
41module.exports = getPaginationMetadata;
\No newline at end of file