relay-runtime 0.0.0-main-e0f88a3b → 0.0.0-main-2087b512

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/handlers/RelayDefaultHandlerProvider.js.flow +2 -3
  2. package/handlers/connection/ConnectionHandler.js.flow +8 -10
  3. package/handlers/connection/MutationHandlers.js.flow +7 -8
  4. package/index.js +1 -1
  5. package/index.js.flow +29 -31
  6. package/lib/handlers/connection/ConnectionHandler.js +7 -7
  7. package/lib/index.js +45 -45
  8. package/lib/multi-actor-environment/ActorSpecificEnvironment.js +4 -4
  9. package/lib/multi-actor-environment/MultiActorEnvironment.js +8 -8
  10. package/lib/multi-actor-environment/index.js +2 -2
  11. package/lib/mutations/RelayRecordProxy.js +3 -2
  12. package/lib/mutations/RelayRecordSourceMutator.js +3 -2
  13. package/lib/mutations/RelayRecordSourceProxy.js +5 -4
  14. package/lib/mutations/RelayRecordSourceSelectorProxy.js +5 -4
  15. package/lib/mutations/applyOptimisticMutation.js +6 -6
  16. package/lib/mutations/commitMutation.js +10 -10
  17. package/lib/mutations/validateMutation.js +6 -6
  18. package/lib/network/ConvertToExecuteFunction.js +2 -1
  19. package/lib/network/RelayNetwork.js +3 -2
  20. package/lib/network/RelayQueryResponseCache.js +2 -2
  21. package/lib/network/wrapNetworkWithLogObserver.js +2 -1
  22. package/lib/query/GraphQLTag.js +2 -1
  23. package/lib/query/fetchQuery.js +6 -5
  24. package/lib/query/fetchQuery_DEPRECATED.js +2 -1
  25. package/lib/store/ClientID.js +4 -4
  26. package/lib/store/DataChecker.js +15 -15
  27. package/lib/store/OperationExecutor.js +13 -13
  28. package/lib/store/RelayConcreteVariables.js +3 -2
  29. package/lib/store/RelayModernEnvironment.js +11 -11
  30. package/lib/store/RelayModernFragmentSpecResolver.js +8 -8
  31. package/lib/store/RelayModernOperationDescriptor.js +2 -1
  32. package/lib/store/RelayModernRecord.js +12 -11
  33. package/lib/store/RelayModernSelector.js +7 -6
  34. package/lib/store/RelayModernStore.js +13 -13
  35. package/lib/store/RelayPublishQueue.js +4 -4
  36. package/lib/store/RelayReader.js +12 -12
  37. package/lib/store/RelayReferenceMarker.js +9 -9
  38. package/lib/store/RelayResponseNormalizer.js +19 -19
  39. package/lib/store/RelayStoreReactFlightUtils.js +3 -3
  40. package/lib/store/RelayStoreSubscriptions.js +4 -4
  41. package/lib/store/RelayStoreUtils.js +3 -3
  42. package/lib/store/ResolverCache.js +6 -6
  43. package/lib/store/ResolverFragments.js +6 -2
  44. package/lib/store/cloneRelayHandleSourceField.js +5 -4
  45. package/lib/store/cloneRelayScalarHandleSourceField.js +5 -4
  46. package/lib/store/createRelayContext.js +3 -1
  47. package/lib/store/readInlineData.js +6 -2
  48. package/lib/subscription/requestSubscription.js +4 -4
  49. package/lib/util/RelayFeatureFlags.js +1 -0
  50. package/lib/util/StringInterner.js +57 -0
  51. package/lib/util/getFragmentIdentifier.js +10 -10
  52. package/lib/util/getOperation.js +2 -1
  53. package/lib/util/getRelayHandleKey.js +2 -2
  54. package/lib/util/getRequestIdentifier.js +2 -2
  55. package/multi-actor-environment/ActorSpecificEnvironment.js.flow +14 -15
  56. package/multi-actor-environment/ActorUtils.js.flow +2 -2
  57. package/multi-actor-environment/MultiActorEnvironment.js.flow +9 -10
  58. package/multi-actor-environment/MultiActorEnvironmentTypes.js.flow +4 -4
  59. package/multi-actor-environment/index.js.flow +1 -2
  60. package/mutations/RelayDeclarativeMutationConfig.js.flow +3 -4
  61. package/mutations/RelayRecordProxy.js.flow +4 -5
  62. package/mutations/RelayRecordSourceMutator.js.flow +4 -6
  63. package/mutations/RelayRecordSourceProxy.js.flow +7 -9
  64. package/mutations/RelayRecordSourceSelectorProxy.js.flow +3 -4
  65. package/mutations/applyOptimisticMutation.js.flow +8 -10
  66. package/mutations/commitLocalUpdate.js.flow +1 -1
  67. package/mutations/commitMutation.js.flow +12 -19
  68. package/mutations/validateMutation.js.flow +14 -16
  69. package/network/ConvertToExecuteFunction.js.flow +2 -2
  70. package/network/RelayNetwork.js.flow +4 -5
  71. package/network/RelayQueryResponseCache.js.flow +3 -3
  72. package/network/wrapNetworkWithLogObserver.js.flow +3 -3
  73. package/package.json +1 -1
  74. package/query/GraphQLTag.js.flow +6 -7
  75. package/query/fetchQuery.js.flow +9 -11
  76. package/query/fetchQueryInternal.js.flow +4 -5
  77. package/query/fetchQuery_DEPRECATED.js.flow +4 -4
  78. package/relay-runtime.js +2 -2
  79. package/relay-runtime.min.js +2 -2
  80. package/store/ClientID.js.flow +8 -6
  81. package/store/DataChecker.js.flow +16 -18
  82. package/store/OperationExecutor.js.flow +24 -26
  83. package/store/RelayConcreteVariables.js.flow +4 -5
  84. package/store/RelayModernEnvironment.js.flow +17 -19
  85. package/store/RelayModernFragmentSpecResolver.js.flow +16 -18
  86. package/store/RelayModernOperationDescriptor.js.flow +10 -11
  87. package/store/RelayModernRecord.js.flow +19 -12
  88. package/store/RelayModernSelector.js.flow +11 -12
  89. package/store/RelayModernStore.js.flow +21 -23
  90. package/store/RelayOperationTracker.js.flow +2 -2
  91. package/store/RelayOptimisticRecordSource.js.flow +2 -2
  92. package/store/RelayPublishQueue.js.flow +8 -9
  93. package/store/RelayReader.js.flow +33 -35
  94. package/store/RelayRecordSource.js.flow +2 -2
  95. package/store/RelayReferenceMarker.js.flow +12 -14
  96. package/store/RelayResponseNormalizer.js.flow +36 -38
  97. package/store/RelayStoreReactFlightUtils.js.flow +3 -4
  98. package/store/RelayStoreSubscriptions.js.flow +7 -8
  99. package/store/RelayStoreTypes.js.flow +9 -3
  100. package/store/RelayStoreUtils.js.flow +7 -8
  101. package/store/ResolverCache.js.flow +11 -13
  102. package/store/ResolverFragments.js.flow +4 -5
  103. package/store/ViewerPattern.js.flow +2 -2
  104. package/store/cloneRelayHandleSourceField.js.flow +5 -6
  105. package/store/cloneRelayScalarHandleSourceField.js.flow +5 -6
  106. package/store/createFragmentSpecResolver.js.flow +3 -4
  107. package/store/createRelayContext.js.flow +2 -2
  108. package/store/normalizeRelayPayload.js.flow +6 -7
  109. package/store/readInlineData.js.flow +3 -4
  110. package/subscription/requestSubscription.js.flow +9 -11
  111. package/util/RelayFeatureFlags.js.flow +2 -0
  112. package/util/RelayReplaySubject.js.flow +2 -3
  113. package/util/StringInterner.js.flow +57 -0
  114. package/util/createPayloadFor3DField.js.flow +3 -3
  115. package/util/getFragmentIdentifier.js.flow +14 -10
  116. package/util/getOperation.js.flow +2 -2
  117. package/util/getPaginationMetadata.js.flow +3 -3
  118. package/util/getPaginationVariables.js.flow +3 -3
  119. package/util/getPendingOperationsForFragment.js.flow +2 -2
  120. package/util/getRefetchMetadata.js.flow +2 -2
  121. package/util/getRelayHandleKey.js.flow +1 -2
  122. package/util/getRequestIdentifier.js.flow +3 -3
  123. package/lib/util/shortString.js +0 -63
  124. package/util/shortString.js.flow +0 -62
@@ -13,19 +13,17 @@
13
13
 
14
14
  'use strict';
15
15
 
16
- const RelayFeatureFlags = require('./RelayFeatureFlags');
17
-
18
- const isEmptyObject = require('./isEmptyObject');
19
- const stableCopy = require('./stableCopy');
16
+ import type {ReaderFragment} from './ReaderNode';
20
17
 
21
18
  const {
22
19
  getDataIDsFromFragment,
23
- getVariablesFromFragment,
24
20
  getSelector,
21
+ getVariablesFromFragment,
25
22
  } = require('../store/RelayModernSelector');
26
- const {shorten} = require('./shortString');
27
-
28
- import type {ReaderFragment} from './ReaderNode';
23
+ const isEmptyObject = require('./isEmptyObject');
24
+ const RelayFeatureFlags = require('./RelayFeatureFlags');
25
+ const stableCopy = require('./stableCopy');
26
+ const {intern} = require('./StringInterner');
29
27
 
30
28
  function getFragmentIdentifier(
31
29
  fragmentNode: ReaderFragment,
@@ -52,7 +50,10 @@ function getFragmentIdentifier(
52
50
  : Array.isArray(dataIDs)
53
51
  ? '[' + dataIDs.join(',') + ']'
54
52
  : dataIDs;
55
- ids = RelayFeatureFlags.STRING_INTERN_LEVEL <= 1 ? ids : shorten(ids);
53
+ ids =
54
+ RelayFeatureFlags.STRING_INTERN_LEVEL <= 1
55
+ ? ids
56
+ : intern(ids, RelayFeatureFlags.MAX_DATA_ID_LENGTH);
56
57
 
57
58
  return (
58
59
  fragmentOwnerIdentifier +
@@ -67,7 +68,10 @@ function getFragmentIdentifier(
67
68
  );
68
69
  } else {
69
70
  let ids = JSON.stringify(dataIDs) ?? 'missing';
70
- ids = RelayFeatureFlags.STRING_INTERN_LEVEL <= 1 ? ids : shorten(ids);
71
+ ids =
72
+ RelayFeatureFlags.STRING_INTERN_LEVEL <= 1
73
+ ? ids
74
+ : intern(ids, RelayFeatureFlags.MAX_DATA_ID_LENGTH);
71
75
 
72
76
  return (
73
77
  fragmentOwnerIdentifier +
@@ -13,14 +13,14 @@
13
13
 
14
14
  'use strict';
15
15
 
16
- const {REQUEST, SPLIT_OPERATION} = require('./RelayConcreteNode');
17
-
18
16
  import type {
19
17
  NormalizationOperation,
20
18
  NormalizationRootNode,
21
19
  NormalizationSplitOperation,
22
20
  } from './NormalizationNode';
23
21
 
22
+ const {REQUEST, SPLIT_OPERATION} = require('./RelayConcreteNode');
23
+
24
24
  /**
25
25
  * OperationLoaders can return either a NormalizationSplitOperation or
26
26
  * ConcreteRequest.
@@ -13,15 +13,15 @@
13
13
 
14
14
  'use strict';
15
15
 
16
- const getRefetchMetadata = require('./getRefetchMetadata');
17
- const invariant = require('invariant');
18
-
19
16
  import type {
20
17
  ConcreteRequest,
21
18
  ReaderFragment,
22
19
  ReaderPaginationMetadata,
23
20
  } from 'relay-runtime';
24
21
 
22
+ const getRefetchMetadata = require('./getRefetchMetadata');
23
+ const invariant = require('invariant');
24
+
25
25
  function getPaginationMetadata(
26
26
  fragmentNode: ReaderFragment,
27
27
  componentDisplayName: string,
@@ -13,12 +13,12 @@
13
13
 
14
14
  'use strict';
15
15
 
16
- const invariant = require('invariant');
17
- const warning = require('warning');
18
-
19
16
  import type {ReaderPaginationMetadata} from './ReaderNode';
20
17
  import type {Variables} from './RelayRuntimeTypes';
21
18
 
19
+ const invariant = require('invariant');
20
+ const warning = require('warning');
21
+
22
22
  export type Direction = 'forward' | 'backward';
23
23
 
24
24
  function getPaginationVariables(
@@ -13,11 +13,11 @@
13
13
 
14
14
  'use strict';
15
15
 
16
- const {getPromiseForActiveRequest} = require('../query/fetchQueryInternal');
17
-
18
16
  import type {IEnvironment, RequestDescriptor} from '../store/RelayStoreTypes';
19
17
  import type {ReaderFragment} from './ReaderNode';
20
18
 
19
+ const {getPromiseForActiveRequest} = require('../query/fetchQueryInternal');
20
+
21
21
  function getPendingOperationsForFragment(
22
22
  environment: IEnvironment,
23
23
  fragmentNode: ReaderFragment,
@@ -13,14 +13,14 @@
13
13
 
14
14
  'use strict';
15
15
 
16
- const invariant = require('invariant');
17
-
18
16
  import type {
19
17
  ConcreteRequest,
20
18
  ReaderFragment,
21
19
  ReaderRefetchMetadata,
22
20
  } from 'relay-runtime';
23
21
 
22
+ const invariant = require('invariant');
23
+
24
24
  function getRefetchMetadata(
25
25
  fragmentNode: ReaderFragment,
26
26
  componentDisplayName: string,
@@ -12,9 +12,8 @@
12
12
 
13
13
  'use strict';
14
14
 
15
- const invariant = require('invariant');
16
-
17
15
  const {DEFAULT_HANDLE_KEY} = require('./RelayDefaultHandleKey');
16
+ const invariant = require('invariant');
18
17
 
19
18
  /**
20
19
  * @internal
@@ -12,12 +12,12 @@
12
12
 
13
13
  'use strict';
14
14
 
15
- const invariant = require('invariant');
16
- const stableCopy = require('./stableCopy');
17
-
18
15
  import type {RequestParameters} from './RelayConcreteNode';
19
16
  import type {Variables} from './RelayRuntimeTypes';
20
17
 
18
+ const stableCopy = require('./stableCopy');
19
+ const invariant = require('invariant');
20
+
21
21
  export type RequestIdentifier = string;
22
22
 
23
23
  /**
@@ -1,63 +0,0 @@
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
-
13
- var RelayFeatureFlags = require('./RelayFeatureFlags');
14
- /**
15
- * Convert a long string into a unique short string
16
- */
17
-
18
-
19
- var ids = Object.create(null);
20
- var digits = initDigitTable();
21
- var seq = 1;
22
- var ESCAPE_PREFIX = 'n';
23
- var INTERN_PREFIX = 'i';
24
-
25
- function initDigitTable() {
26
- var ret = Object.create(null);
27
-
28
- for (var i = 0; i < 10; ++i) {
29
- ret["".concat(i)] = true;
30
- }
31
-
32
- return ret;
33
- } // escape a string so that it never conflicts with a shortened string
34
-
35
-
36
- function escape(str) {
37
- if ( // "i<digit>..." -> "ni<digit>..."
38
- str[0] === INTERN_PREFIX && str[1] in digits || // "ni<digit>..." -> "nni<digit>"
39
- str[0] === ESCAPE_PREFIX) {
40
- return ESCAPE_PREFIX + str;
41
- }
42
-
43
- return str;
44
- }
45
-
46
- function shorten(str) {
47
- if (RelayFeatureFlags.MAX_DATA_ID_LENGTH == null || str.length < RelayFeatureFlags.MAX_DATA_ID_LENGTH) {
48
- return escape(str);
49
- }
50
-
51
- if (str in ids) {
52
- return ids[str];
53
- }
54
-
55
- var ret = INTERN_PREFIX + seq++;
56
- ids[str] = ret;
57
- return ret;
58
- }
59
-
60
- module.exports = {
61
- escape: escape,
62
- shorten: shorten
63
- };
@@ -1,62 +0,0 @@
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
- * @flow strict
8
- * @format
9
- */
10
-
11
- // flowlint ambiguous-object-type:error
12
-
13
- 'use strict';
14
-
15
- const RelayFeatureFlags = require('./RelayFeatureFlags');
16
-
17
- /**
18
- * Convert a long string into a unique short string
19
- */
20
- const ids = Object.create(null);
21
- const digits = initDigitTable();
22
- let seq = 1;
23
- const ESCAPE_PREFIX = 'n';
24
- const INTERN_PREFIX = 'i';
25
-
26
- function initDigitTable() {
27
- const ret = Object.create(null);
28
- for (let i = 0; i < 10; ++i) {
29
- ret[`${i}`] = true;
30
- }
31
- return ret;
32
- }
33
-
34
- // escape a string so that it never conflicts with a shortened string
35
- function escape(str: string): string {
36
- if (
37
- // "i<digit>..." -> "ni<digit>..."
38
- (str[0] === INTERN_PREFIX && str[1] in digits) ||
39
- // "ni<digit>..." -> "nni<digit>"
40
- str[0] === ESCAPE_PREFIX
41
- ) {
42
- return ESCAPE_PREFIX + str;
43
- }
44
- return str;
45
- }
46
-
47
- function shorten(str: string): string {
48
- if (
49
- RelayFeatureFlags.MAX_DATA_ID_LENGTH == null ||
50
- str.length < RelayFeatureFlags.MAX_DATA_ID_LENGTH
51
- ) {
52
- return escape(str);
53
- }
54
- if (str in ids) {
55
- return ids[str];
56
- }
57
- const ret = INTERN_PREFIX + seq++;
58
- ids[str] = ret;
59
- return ret;
60
- }
61
-
62
- module.exports = {escape, shorten};