relay-test-utils-internal 0.0.0-main-9556f2ff → 0.0.0-main-82d0f0e9

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 (144) hide show
  1. package/index.js +1 -1
  2. package/package.json +2 -2
  3. package/relay-test-utils-internal.js +1 -1
  4. package/relay-test-utils-internal.min.js +1 -1
  5. package/AstrologicalSignUtils.js.flow +0 -105
  6. package/ExampleExternalStateStore.js.flow +0 -61
  7. package/lib/AstrologicalSignUtils.js +0 -62
  8. package/lib/ExampleExternalStateStore.js +0 -76
  9. package/lib/resolvers/AstrologicalSignHouseResolver.js +0 -49
  10. package/lib/resolvers/AstrologicalSignNameResolver.js +0 -49
  11. package/lib/resolvers/AstrologicalSignOppositeResolver.js +0 -50
  12. package/lib/resolvers/AstrologicalSignSelfResolver.js +0 -60
  13. package/lib/resolvers/CounterPlusOneResolver.js +0 -48
  14. package/lib/resolvers/CounterSuspendsWhenOdd.js +0 -72
  15. package/lib/resolvers/LiveCounterResolver.js +0 -63
  16. package/lib/resolvers/LivePingPongResolver.js +0 -61
  17. package/lib/resolvers/QueryAllAstrologicalSignsResolver.js +0 -53
  18. package/lib/resolvers/ResolverThatThrows.js +0 -56
  19. package/lib/resolvers/ThrowBeforeReadResolver.js +0 -52
  20. package/lib/resolvers/UndefinedFieldResolver.js +0 -50
  21. package/lib/resolvers/UserAlwaysThrowsResolver.js +0 -48
  22. package/lib/resolvers/UserAlwaysThrowsTransitivelyResolver.js +0 -48
  23. package/lib/resolvers/UserAnotherClientEdgeResolver.js +0 -47
  24. package/lib/resolvers/UserAstrologicalSignResolver.js +0 -53
  25. package/lib/resolvers/UserBestFriendGreetingResolver.js +0 -49
  26. package/lib/resolvers/UserBestFriendShoutedGreetingResolver.js +0 -49
  27. package/lib/resolvers/UserClientEdgeResolver.js +0 -47
  28. package/lib/resolvers/UserConstantDependentResolver.js +0 -49
  29. package/lib/resolvers/UserConstantResolver.js +0 -48
  30. package/lib/resolvers/UserCustomGreetingResolver.js +0 -51
  31. package/lib/resolvers/UserGreetingResolver.js +0 -51
  32. package/lib/resolvers/UserNameAndCounterSuspendsWhenOdd.js +0 -49
  33. package/lib/resolvers/UserNamePassthroughResolver.js +0 -46
  34. package/lib/resolvers/UserNullClientEdgeResolver.js +0 -47
  35. package/lib/resolvers/UserProfilePictureResolver.js +0 -48
  36. package/lib/resolvers/UserProfilePictureUriSuspendsWhenTheCounterIsOdd.js +0 -71
  37. package/lib/resolvers/UserProfilePictureWithDefaultValueResolver.js +0 -48
  38. package/lib/resolvers/UserProfilePictureWithRuntimeArgumentResolver.js +0 -51
  39. package/lib/resolvers/UserReadsClientEdgeResolver.js +0 -48
  40. package/lib/resolvers/UserRequiredNameResolver.js +0 -49
  41. package/lib/resolvers/UserShoutedGreetingResolver.js +0 -49
  42. package/lib/resolvers/__generated__/AstrologicalSignHouseResolver.graphql.js +0 -63
  43. package/lib/resolvers/__generated__/AstrologicalSignNameResolver.graphql.js +0 -63
  44. package/lib/resolvers/__generated__/AstrologicalSignOppositeResolver.graphql.js +0 -63
  45. package/lib/resolvers/__generated__/AstrologicalSignSelfResolver.graphql.js +0 -64
  46. package/lib/resolvers/__generated__/ClientEdgeQuery_UserReadsClientEdgeResolver_client_edge.graphql.js +0 -134
  47. package/lib/resolvers/__generated__/CounterPlusOneResolver.graphql.js +0 -68
  48. package/lib/resolvers/__generated__/CounterSuspendsWhenOdd.graphql.js +0 -70
  49. package/lib/resolvers/__generated__/LiveCounterResolver.graphql.js +0 -70
  50. package/lib/resolvers/__generated__/LivePingPongResolver.graphql.js +0 -70
  51. package/lib/resolvers/__generated__/QueryAllAstrologicalSignsResolver.graphql.js +0 -67
  52. package/lib/resolvers/__generated__/RefetchableClientEdgeQuery_UserReadsClientEdgeResolver_client_edge.graphql.js +0 -71
  53. package/lib/resolvers/__generated__/ResolverThatThrows.graphql.js +0 -61
  54. package/lib/resolvers/__generated__/ThrowBeforeReadResolver.graphql.js +0 -70
  55. package/lib/resolvers/__generated__/UndefinedFieldResolver.graphql.js +0 -70
  56. package/lib/resolvers/__generated__/UserAlwaysThrowsResolver.graphql.js +0 -61
  57. package/lib/resolvers/__generated__/UserAlwaysThrowsTransitivelyResolver.graphql.js +0 -63
  58. package/lib/resolvers/__generated__/UserAnotherClientEdgeResolver.graphql.js +0 -61
  59. package/lib/resolvers/__generated__/UserAstrologicalSignResolver.graphql.js +0 -89
  60. package/lib/resolvers/__generated__/UserBestFriendGreetingResolver.graphql.js +0 -100
  61. package/lib/resolvers/__generated__/UserBestFriendShoutedGreetingResolver.graphql.js +0 -107
  62. package/lib/resolvers/__generated__/UserClientEdgeResolver.graphql.js +0 -56
  63. package/lib/resolvers/__generated__/UserConstantDependentResolver.graphql.js +0 -63
  64. package/lib/resolvers/__generated__/UserConstantResolver.graphql.js +0 -56
  65. package/lib/resolvers/__generated__/UserCustomGreetingResolver.graphql.js +0 -56
  66. package/lib/resolvers/__generated__/UserGreetingResolver.graphql.js +0 -56
  67. package/lib/resolvers/__generated__/UserNameAndCounterSuspendsWhenOdd.graphql.js +0 -81
  68. package/lib/resolvers/__generated__/UserNamePassthroughResolver.graphql.js +0 -56
  69. package/lib/resolvers/__generated__/UserNullClientEdgeResolver.graphql.js +0 -56
  70. package/lib/resolvers/__generated__/UserProfilePictureResolver.graphql.js +0 -75
  71. package/lib/resolvers/__generated__/UserProfilePictureUriSuspendsWhenTheCounterIsOdd.graphql.js +0 -85
  72. package/lib/resolvers/__generated__/UserProfilePictureWithDefaultValueResolver.graphql.js +0 -75
  73. package/lib/resolvers/__generated__/UserProfilePictureWithRuntimeArgumentResolver.graphql.js +0 -75
  74. package/lib/resolvers/__generated__/UserReadsClientEdgeResolver.graphql.js +0 -86
  75. package/lib/resolvers/__generated__/UserRequiredNameResolver.graphql.js +0 -61
  76. package/lib/resolvers/__generated__/UserShoutedGreetingResolver.graphql.js +0 -63
  77. package/resolvers/AstrologicalSignHouseResolver.js.flow +0 -41
  78. package/resolvers/AstrologicalSignNameResolver.js.flow +0 -41
  79. package/resolvers/AstrologicalSignOppositeResolver.js.flow +0 -42
  80. package/resolvers/AstrologicalSignSelfResolver.js.flow +0 -55
  81. package/resolvers/CounterPlusOneResolver.js.flow +0 -41
  82. package/resolvers/CounterSuspendsWhenOdd.js.flow +0 -66
  83. package/resolvers/LiveCounterResolver.js.flow +0 -57
  84. package/resolvers/LivePingPongResolver.js.flow +0 -58
  85. package/resolvers/QueryAllAstrologicalSignsResolver.js.flow +0 -48
  86. package/resolvers/ResolverThatThrows.js.flow +0 -53
  87. package/resolvers/ThrowBeforeReadResolver.js.flow +0 -49
  88. package/resolvers/UndefinedFieldResolver.js.flow +0 -46
  89. package/resolvers/UserAlwaysThrowsResolver.js.flow +0 -41
  90. package/resolvers/UserAlwaysThrowsTransitivelyResolver.js.flow +0 -43
  91. package/resolvers/UserAnotherClientEdgeResolver.js.flow +0 -43
  92. package/resolvers/UserAstrologicalSignResolver.js.flow +0 -50
  93. package/resolvers/UserBestFriendGreetingResolver.js.flow +0 -49
  94. package/resolvers/UserBestFriendShoutedGreetingResolver.js.flow +0 -49
  95. package/resolvers/UserClientEdgeResolver.js.flow +0 -41
  96. package/resolvers/UserConstantDependentResolver.js.flow +0 -43
  97. package/resolvers/UserConstantResolver.js.flow +0 -41
  98. package/resolvers/UserCustomGreetingResolver.js.flow +0 -45
  99. package/resolvers/UserGreetingResolver.js.flow +0 -42
  100. package/resolvers/UserNameAndCounterSuspendsWhenOdd.js.flow +0 -45
  101. package/resolvers/UserNamePassthroughResolver.js.flow +0 -39
  102. package/resolvers/UserNullClientEdgeResolver.js.flow +0 -43
  103. package/resolvers/UserProfilePictureResolver.js.flow +0 -42
  104. package/resolvers/UserProfilePictureUriSuspendsWhenTheCounterIsOdd.js.flow +0 -65
  105. package/resolvers/UserProfilePictureWithDefaultValueResolver.js.flow +0 -44
  106. package/resolvers/UserProfilePictureWithRuntimeArgumentResolver.js.flow +0 -47
  107. package/resolvers/UserReadsClientEdgeResolver.js.flow +0 -45
  108. package/resolvers/UserRequiredNameResolver.js.flow +0 -41
  109. package/resolvers/UserShoutedGreetingResolver.js.flow +0 -40
  110. package/resolvers/__generated__/AstrologicalSignHouseResolver.graphql.js.flow +0 -64
  111. package/resolvers/__generated__/AstrologicalSignNameResolver.graphql.js.flow +0 -64
  112. package/resolvers/__generated__/AstrologicalSignOppositeResolver.graphql.js.flow +0 -64
  113. package/resolvers/__generated__/AstrologicalSignSelfResolver.graphql.js.flow +0 -67
  114. package/resolvers/__generated__/ClientEdgeQuery_UserReadsClientEdgeResolver_client_edge.graphql.js.flow +0 -141
  115. package/resolvers/__generated__/CounterPlusOneResolver.graphql.js.flow +0 -69
  116. package/resolvers/__generated__/CounterSuspendsWhenOdd.graphql.js.flow +0 -75
  117. package/resolvers/__generated__/LiveCounterResolver.graphql.js.flow +0 -75
  118. package/resolvers/__generated__/LivePingPongResolver.graphql.js.flow +0 -75
  119. package/resolvers/__generated__/QueryAllAstrologicalSignsResolver.graphql.js.flow +0 -70
  120. package/resolvers/__generated__/RefetchableClientEdgeQuery_UserReadsClientEdgeResolver_client_edge.graphql.js.flow +0 -76
  121. package/resolvers/__generated__/ResolverThatThrows.graphql.js.flow +0 -62
  122. package/resolvers/__generated__/ThrowBeforeReadResolver.graphql.js.flow +0 -75
  123. package/resolvers/__generated__/UndefinedFieldResolver.graphql.js.flow +0 -75
  124. package/resolvers/__generated__/UserAlwaysThrowsResolver.graphql.js.flow +0 -62
  125. package/resolvers/__generated__/UserAlwaysThrowsTransitivelyResolver.graphql.js.flow +0 -64
  126. package/resolvers/__generated__/UserAnotherClientEdgeResolver.graphql.js.flow +0 -62
  127. package/resolvers/__generated__/UserAstrologicalSignResolver.graphql.js.flow +0 -93
  128. package/resolvers/__generated__/UserBestFriendGreetingResolver.graphql.js.flow +0 -110
  129. package/resolvers/__generated__/UserBestFriendShoutedGreetingResolver.graphql.js.flow +0 -117
  130. package/resolvers/__generated__/UserClientEdgeResolver.graphql.js.flow +0 -57
  131. package/resolvers/__generated__/UserConstantDependentResolver.graphql.js.flow +0 -64
  132. package/resolvers/__generated__/UserConstantResolver.graphql.js.flow +0 -57
  133. package/resolvers/__generated__/UserCustomGreetingResolver.graphql.js.flow +0 -57
  134. package/resolvers/__generated__/UserGreetingResolver.graphql.js.flow +0 -57
  135. package/resolvers/__generated__/UserNameAndCounterSuspendsWhenOdd.graphql.js.flow +0 -85
  136. package/resolvers/__generated__/UserNamePassthroughResolver.graphql.js.flow +0 -57
  137. package/resolvers/__generated__/UserNullClientEdgeResolver.graphql.js.flow +0 -57
  138. package/resolvers/__generated__/UserProfilePictureResolver.graphql.js.flow +0 -82
  139. package/resolvers/__generated__/UserProfilePictureUriSuspendsWhenTheCounterIsOdd.graphql.js.flow +0 -91
  140. package/resolvers/__generated__/UserProfilePictureWithDefaultValueResolver.graphql.js.flow +0 -82
  141. package/resolvers/__generated__/UserProfilePictureWithRuntimeArgumentResolver.graphql.js.flow +0 -82
  142. package/resolvers/__generated__/UserReadsClientEdgeResolver.graphql.js.flow +0 -89
  143. package/resolvers/__generated__/UserRequiredNameResolver.graphql.js.flow +0 -62
  144. package/resolvers/__generated__/UserShoutedGreetingResolver.graphql.js.flow +0 -64
@@ -1,41 +0,0 @@
1
- /**
2
- * Copyright (c) Meta Platforms, Inc. and 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
- * @format
8
- * @flow strict-local
9
- * @emails oncall+relay
10
- */
11
-
12
- 'use strict';
13
-
14
- import type {AstrologicalSignNameResolver$key} from './__generated__/AstrologicalSignNameResolver.graphql';
15
-
16
- const {graphql} = require('relay-runtime');
17
- const {readFragment} = require('relay-runtime/store/ResolverFragments');
18
-
19
- /**
20
- * @RelayResolver
21
- * @fieldName name
22
- * @rootFragment AstrologicalSignNameResolver
23
- * @onType AstrologicalSign
24
- *
25
- * Re-expose `Name` from our client fat `self` object.
26
- */
27
- function astrologicalSignName(
28
- rootKey: AstrologicalSignNameResolver$key,
29
- ): string | null {
30
- const sign = readFragment(
31
- graphql`
32
- fragment AstrologicalSignNameResolver on AstrologicalSign {
33
- self
34
- }
35
- `,
36
- rootKey,
37
- );
38
- return sign.self?.name ?? null;
39
- }
40
-
41
- module.exports = astrologicalSignName;
@@ -1,42 +0,0 @@
1
- /**
2
- * Copyright (c) Meta Platforms, Inc. and 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
- * @format
8
- * @flow strict-local
9
- * @emails oncall+relay
10
- */
11
-
12
- 'use strict';
13
-
14
- import type {AstrologicalSignOppositeResolver$key} from './__generated__/AstrologicalSignOppositeResolver.graphql';
15
-
16
- const {graphql} = require('relay-runtime');
17
- const {readFragment} = require('relay-runtime/store/ResolverFragments');
18
-
19
- /**
20
- * @RelayResolver
21
- * @fieldName opposite
22
- * @rootFragment AstrologicalSignOppositeResolver
23
- * @onType AstrologicalSign
24
- * @edgeTo AstrologicalSign
25
- *
26
- * Expose a sign's opposite as an edge in the graph.
27
- */
28
- function astrologicalSignOpposite(
29
- rootKey: AstrologicalSignOppositeResolver$key,
30
- ): string | null {
31
- const sign = readFragment(
32
- graphql`
33
- fragment AstrologicalSignOppositeResolver on AstrologicalSign {
34
- self
35
- }
36
- `,
37
- rootKey,
38
- );
39
- return sign.self?.oppositeSignId ?? null;
40
- }
41
-
42
- module.exports = astrologicalSignOpposite;
@@ -1,55 +0,0 @@
1
- /**
2
- * Copyright (c) Meta Platforms, Inc. and 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
- * @format
8
- * @flow strict-local
9
- * @emails oncall+relay
10
- */
11
-
12
- 'use strict';
13
-
14
- import type {
15
- AstrologicalSignID,
16
- ClientAstrologicalSignData,
17
- } from '../AstrologicalSignUtils';
18
- import type {AstrologicalSignSelfResolver$key} from './__generated__/AstrologicalSignSelfResolver.graphql';
19
-
20
- const {getHouse, getOpposite} = require('../AstrologicalSignUtils');
21
- const {graphql} = require('relay-runtime');
22
- const {readFragment} = require('relay-runtime/store/ResolverFragments');
23
-
24
- /**
25
- * @RelayResolver
26
- * @fieldName self
27
- * @rootFragment AstrologicalSignSelfResolver
28
- * @onType AstrologicalSign
29
- *
30
- * Local state knowledge of the user's astological sign.
31
- */
32
- function astrologicalSignSelf(
33
- rootKey: AstrologicalSignSelfResolver$key,
34
- ): ClientAstrologicalSignData {
35
- const sign = readFragment(
36
- graphql`
37
- fragment AstrologicalSignSelfResolver on AstrologicalSign {
38
- id @required(action: THROW)
39
- }
40
- `,
41
- rootKey,
42
- );
43
-
44
- // id is ID in the schema, but `AstrologicalSignID` in the resolver
45
- // which actually returns it. This is a typehole we'll need to patch.
46
- // $FlowFixMe
47
- const id: AstrologicalSignID = (sign.id: any);
48
- return {
49
- name: sign.id, // The id is actually the human readable name.
50
- oppositeSignId: getOpposite(id),
51
- house: getHouse(id),
52
- };
53
- }
54
-
55
- module.exports = astrologicalSignSelf;
@@ -1,41 +0,0 @@
1
- /**
2
- * Copyright (c) Meta Platforms, Inc. and 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
- * @format
8
- * @flow strict-local
9
- * @emails oncall+relay
10
- */
11
-
12
- // flowlint ambiguous-object-type:error
13
-
14
- 'use strict';
15
-
16
- import type {CounterPlusOneResolver$key} from './__generated__/CounterPlusOneResolver.graphql';
17
-
18
- const {graphql} = require('relay-runtime');
19
- const {readFragment} = require('relay-runtime/store/ResolverFragments');
20
-
21
- /**
22
- * @RelayResolver
23
- * @fieldName counter_plus_one
24
- * @rootFragment CounterPlusOneResolver
25
- * @onType Query
26
- *
27
- * A resolver which reads a @live resover field (`counter`) to return `counter + 1`.
28
- */
29
- function counterPlusOne(rootKey: CounterPlusOneResolver$key): number {
30
- const data = readFragment(
31
- graphql`
32
- fragment CounterPlusOneResolver on Query {
33
- counter @required(action: THROW)
34
- }
35
- `,
36
- rootKey,
37
- );
38
- return data.counter + 1;
39
- }
40
-
41
- module.exports = counterPlusOne;
@@ -1,66 +0,0 @@
1
- /**
2
- * Copyright (c) Meta Platforms, Inc. and 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
- * @format
8
- * @flow strict-local
9
- * @emails oncall+relay
10
- */
11
-
12
- // flowlint ambiguous-object-type:error
13
-
14
- 'use strict';
15
-
16
- import type {CounterSuspendsWhenOdd$key} from './__generated__/CounterSuspendsWhenOdd.graphql';
17
- import type {LiveState} from 'relay-runtime/store/experimental-live-resolvers/LiveResolverStore';
18
-
19
- const {GLOBAL_STORE, Selectors} = require('../ExampleExternalStateStore');
20
- const {graphql} = require('relay-runtime');
21
- const {
22
- suspenseSentinel,
23
- } = require('relay-runtime/store/experimental-live-resolvers/LiveResolverSuspenseSentinel');
24
- const {readFragment} = require('relay-runtime/store/ResolverFragments');
25
-
26
- /**
27
- * @RelayResolver
28
- * @fieldName counter_suspends_when_odd
29
- * @rootFragment CounterSuspendsWhenOdd
30
- * @onType Query
31
- * @live
32
- *
33
- * A Relay Resolver that returns an object implementing the External State
34
- * Resolver interface.
35
- */
36
- function CounterSuspendsWhenOdd(
37
- rootKey: CounterSuspendsWhenOdd$key,
38
- ): LiveState<number> {
39
- readFragment(
40
- graphql`
41
- fragment CounterSuspendsWhenOdd on Query {
42
- me {
43
- __id
44
- }
45
- }
46
- `,
47
- rootKey,
48
- );
49
- return {
50
- read() {
51
- const number = Selectors.getNumber(GLOBAL_STORE.getState());
52
- if (number % 2 !== 0) {
53
- return suspenseSentinel();
54
- } else {
55
- return number;
56
- }
57
- },
58
- subscribe(cb): () => void {
59
- // Here we could try to run the selector and short-circuit if
60
- // the value has not changed, but for now we'll over-notify.
61
- return GLOBAL_STORE.subscribe(cb);
62
- },
63
- };
64
- }
65
-
66
- module.exports = CounterSuspendsWhenOdd;
@@ -1,57 +0,0 @@
1
- /**
2
- * Copyright (c) Meta Platforms, Inc. and 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
- * @format
8
- * @flow strict-local
9
- * @emails oncall+relay
10
- */
11
-
12
- // flowlint ambiguous-object-type:error
13
-
14
- 'use strict';
15
-
16
- import type {LiveCounterResolver$key} from './__generated__/LiveCounterResolver.graphql';
17
- import type {LiveState} from 'relay-runtime/store/experimental-live-resolvers/LiveResolverStore';
18
-
19
- const {GLOBAL_STORE, Selectors} = require('../ExampleExternalStateStore');
20
- const {graphql} = require('relay-runtime');
21
- const {readFragment} = require('relay-runtime/store/ResolverFragments');
22
-
23
- /**
24
- * @RelayResolver
25
- * @fieldName counter
26
- * @rootFragment LiveCounterResolver
27
- * @onType Query
28
- * @live
29
- *
30
- * A Relay Resolver that returns an object implementing the External State
31
- * Resolver interface.
32
- */
33
- function counter(rootKey: LiveCounterResolver$key): LiveState<number> {
34
- readFragment(
35
- graphql`
36
- fragment LiveCounterResolver on Query {
37
- # We don't need to read any Relay state here, but this works for now
38
- me {
39
- __id
40
- }
41
- }
42
- `,
43
- rootKey,
44
- );
45
- return {
46
- read() {
47
- return Selectors.getNumber(GLOBAL_STORE.getState());
48
- },
49
- subscribe(cb): () => void {
50
- // Here we could try to run the selector and short-circut if the value has
51
- // not changed, but for now we'll over-notify.
52
- return GLOBAL_STORE.subscribe(cb);
53
- },
54
- };
55
- }
56
-
57
- module.exports = counter;
@@ -1,58 +0,0 @@
1
- /**
2
- * Copyright (c) Meta Platforms, Inc. and 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
- * @format
8
- * @flow strict-local
9
- * @emails oncall+relay
10
- */
11
-
12
- // flowlint ambiguous-object-type:error
13
-
14
- 'use strict';
15
-
16
- import type {LivePingPongResolver$key} from './__generated__/LivePingPongResolver.graphql';
17
- import type {LiveState} from 'relay-runtime/store/experimental-live-resolvers/LiveResolverStore';
18
-
19
- const {graphql} = require('relay-runtime');
20
- const {readFragment} = require('relay-runtime/store/ResolverFragments');
21
-
22
- /**
23
- * @RelayResolver
24
- * @fieldName ping
25
- * @rootFragment LivePingPongResolver
26
- * @onType Query
27
- * @live
28
- *
29
- * A @live Relay resolver that syncronously triggers an update on initial
30
- * subscribe. This is intended to exercise an edge case in Relay's handling of
31
- * Live Resolvers.
32
- */
33
- function pingPong(rootKey: LivePingPongResolver$key): LiveState<string> {
34
- readFragment(
35
- graphql`
36
- fragment LivePingPongResolver on Query {
37
- # We don't need to read any Relay state here, but this works for now
38
- me {
39
- __id
40
- }
41
- }
42
- `,
43
- rootKey,
44
- );
45
- let value = 'ping';
46
- return {
47
- read() {
48
- return value;
49
- },
50
- subscribe(cb): () => void {
51
- value = 'pong';
52
- cb();
53
- return () => {};
54
- },
55
- };
56
- }
57
-
58
- module.exports = pingPong;
@@ -1,48 +0,0 @@
1
- /**
2
- * Copyright (c) Meta Platforms, Inc. and 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
- * @format
8
- * @flow strict-local
9
- * @emails oncall+relay
10
- */
11
-
12
- 'use strict';
13
-
14
- import type {AstrologicalSignID} from '../AstrologicalSignUtils';
15
- import type {QueryAllAstrologicalSignsResolver$key} from './__generated__/QueryAllAstrologicalSignsResolver.graphql';
16
-
17
- const {HOUSE_ORDER} = require('../AstrologicalSignUtils');
18
-
19
- const {graphql} = require('relay-runtime');
20
- const {readFragment} = require('relay-runtime/store/ResolverFragments');
21
-
22
- /**
23
- * @RelayResolver
24
- * @fieldName all_astrological_signs
25
- * @rootFragment QueryAllAstrologicalSignsResolver
26
- * @onType Query
27
- * @edgeTo [AstrologicalSign]
28
- *
29
- * A client edge to a plural client object
30
- */
31
- function astrologicalSignSelf(
32
- rootKey: QueryAllAstrologicalSignsResolver$key,
33
- ): $ReadOnlyArray<AstrologicalSignID> {
34
- readFragment(
35
- graphql`
36
- fragment QueryAllAstrologicalSignsResolver on Query {
37
- me {
38
- __typename
39
- }
40
- }
41
- `,
42
- rootKey,
43
- );
44
-
45
- return [...HOUSE_ORDER];
46
- }
47
-
48
- module.exports = astrologicalSignSelf;
@@ -1,53 +0,0 @@
1
- /**
2
- * Copyright (c) Meta Platforms, Inc. and 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
- * @format
8
- * @flow strict-local
9
- * @emails oncall+relay
10
- */
11
-
12
- // flowlint ambiguous-object-type:error
13
-
14
- 'use strict';
15
-
16
- import type {ResolverThatThrows$key} from './__generated__/ResolverThatThrows.graphql';
17
- import type {LiveState} from 'relay-runtime/store/experimental-live-resolvers/LiveResolverStore';
18
-
19
- const {graphql} = require('relay-runtime');
20
- const {readFragment} = require('relay-runtime/store/ResolverFragments');
21
-
22
- /**
23
- * @RelayResolver
24
- * @fieldName resolver_that_throws
25
- * @rootFragment ResolverThatThrows
26
- * @onType User
27
- * @live
28
- *
29
- * This should always throw.
30
- */
31
- function ResolverThatThrows(rootKey: ResolverThatThrows$key): LiveState<null> {
32
- readFragment(
33
- graphql`
34
- fragment ResolverThatThrows on User {
35
- username @required(action: THROW)
36
- }
37
- `,
38
- rootKey,
39
- );
40
-
41
- return {
42
- read() {
43
- throw new Error(
44
- 'The resolver should throw earlier. It should have missing data.',
45
- );
46
- },
47
- subscribe(cb) {
48
- return () => {};
49
- },
50
- };
51
- }
52
-
53
- module.exports = ResolverThatThrows;
@@ -1,49 +0,0 @@
1
- /**
2
- * Copyright (c) Meta Platforms, Inc. and 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
- * @format
8
- * @flow strict-local
9
- * @emails oncall+relay
10
- */
11
-
12
- // flowlint ambiguous-object-type:error
13
-
14
- 'use strict';
15
-
16
- import type {ThrowBeforeReadResolver$key} from './__generated__/ThrowBeforeReadResolver.graphql';
17
-
18
- const {graphql} = require('relay-runtime');
19
- const {readFragment} = require('relay-runtime/store/ResolverFragments');
20
-
21
- /**
22
- * @RelayResolver
23
- * @fieldName throw_before_read
24
- * @rootFragment ThrowBeforeReadResolver
25
- * @onType Query
26
- *
27
- * A resolver that exercises the edge case where a resolver throws before reading.
28
- */
29
- function pingPong(rootKey: ThrowBeforeReadResolver$key): mixed {
30
- // Trick Flow's unreachable code detection.
31
- if (true) {
32
- throw new Error(
33
- 'Purposefully throwing before reading to exercise an edge case.',
34
- );
35
- }
36
- readFragment(
37
- graphql`
38
- fragment ThrowBeforeReadResolver on Query {
39
- # We don't need to read any Relay state here, but this works for now
40
- me {
41
- __id
42
- }
43
- }
44
- `,
45
- rootKey,
46
- );
47
- }
48
-
49
- module.exports = pingPong;
@@ -1,46 +0,0 @@
1
- /**
2
- * Copyright (c) Meta Platforms, Inc. and 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
- * @format
8
- * @flow strict-local
9
- * @emails oncall+relay
10
- */
11
-
12
- // flowlint ambiguous-object-type:error
13
-
14
- 'use strict';
15
-
16
- import type {UndefinedFieldResolver$key} from './__generated__/UndefinedFieldResolver.graphql';
17
-
18
- const {graphql} = require('relay-runtime');
19
- const {readFragment} = require('relay-runtime/store/ResolverFragments');
20
-
21
- /**
22
- * @RelayResolver
23
- * @fieldName undefined_field
24
- * @rootFragment UndefinedFieldResolver
25
- * @onType Query
26
- *
27
- * A resolver that always returns undefined. This is inteneded to exercise an
28
- * edge case in Relay Reader where `undefined` is generally interperated as
29
- * indicating that a field has not been fetched, and thus we should suspend.
30
- */
31
- function pingPong(rootKey: UndefinedFieldResolver$key): void {
32
- readFragment(
33
- graphql`
34
- fragment UndefinedFieldResolver on Query {
35
- # We don't need to read any Relay state here, but this works for now
36
- me {
37
- __id
38
- }
39
- }
40
- `,
41
- rootKey,
42
- );
43
- return undefined;
44
- }
45
-
46
- module.exports = pingPong;
@@ -1,41 +0,0 @@
1
- /**
2
- * Copyright (c) Meta Platforms, Inc. and 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
- * @format
8
- * @flow strict-local
9
- * @emails oncall+relay
10
- */
11
-
12
- // flowlint ambiguous-object-type:error
13
-
14
- 'use strict';
15
-
16
- import type {UserAlwaysThrowsResolver$key} from './__generated__/UserAlwaysThrowsResolver.graphql';
17
-
18
- const {graphql} = require('relay-runtime');
19
- const {readFragment} = require('relay-runtime/store/ResolverFragments');
20
-
21
- /**
22
- * @RelayResolver
23
- * @fieldName always_throws
24
- * @rootFragment UserAlwaysThrowsResolver
25
- * @onType User
26
- *
27
- * A Relay Resolver that always throws when evaluated.
28
- */
29
- function userAlwaysThrows(rootKey: UserAlwaysThrowsResolver$key): string {
30
- readFragment(
31
- graphql`
32
- fragment UserAlwaysThrowsResolver on User {
33
- __typename
34
- }
35
- `,
36
- rootKey,
37
- );
38
- throw new Error('I always throw. What did you expect?');
39
- }
40
-
41
- module.exports = userAlwaysThrows;
@@ -1,43 +0,0 @@
1
- /**
2
- * Copyright (c) Meta Platforms, Inc. and 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
- * @format
8
- * @flow strict-local
9
- * @emails oncall+relay
10
- */
11
-
12
- // flowlint ambiguous-object-type:error
13
-
14
- 'use strict';
15
-
16
- import type {UserAlwaysThrowsTransitivelyResolver$key} from './__generated__/UserAlwaysThrowsTransitivelyResolver.graphql';
17
-
18
- const {graphql} = require('relay-runtime');
19
- const {readFragment} = require('relay-runtime/store/ResolverFragments');
20
-
21
- /**
22
- * @RelayResolver
23
- * @fieldName always_throws_transitively
24
- * @rootFragment UserAlwaysThrowsTransitivelyResolver
25
- * @onType User
26
- *
27
- * A Relay Resolver that reads another resolver which will always throw.
28
- */
29
- function userAlwaysThrowsTransitively(
30
- rootKey: UserAlwaysThrowsTransitivelyResolver$key,
31
- ): ?string {
32
- const user = readFragment(
33
- graphql`
34
- fragment UserAlwaysThrowsTransitivelyResolver on User {
35
- always_throws
36
- }
37
- `,
38
- rootKey,
39
- );
40
- return user.always_throws;
41
- }
42
-
43
- module.exports = userAlwaysThrowsTransitively;
@@ -1,43 +0,0 @@
1
- /**
2
- * Copyright (c) Meta Platforms, Inc. and 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
- * @format
8
- * @flow strict-local
9
- * @emails oncall+relay
10
- */
11
-
12
- // flowlint ambiguous-object-type:error
13
-
14
- 'use strict';
15
-
16
- import type {UserAnotherClientEdgeResolver$key} from './__generated__/UserAnotherClientEdgeResolver.graphql';
17
- import type {DataID} from 'relay-runtime';
18
-
19
- const {graphql} = require('relay-runtime');
20
- const {readFragment} = require('relay-runtime/store/ResolverFragments');
21
-
22
- /**
23
- * @RelayResolver
24
- * @fieldName another_client_edge
25
- * @rootFragment UserAnotherClientEdgeResolver
26
- * @onType User
27
- * @edgeTo User
28
- */
29
- function UserAnotherClientEdgeResolver(
30
- rootKey: UserAnotherClientEdgeResolver$key,
31
- ): DataID {
32
- readFragment(
33
- graphql`
34
- fragment UserAnotherClientEdgeResolver on User {
35
- __typename
36
- }
37
- `,
38
- rootKey,
39
- );
40
- return '1338';
41
- }
42
-
43
- module.exports = UserAnotherClientEdgeResolver;