relay-test-utils-internal 0.0.0-main-ff332915 → 0.0.0-main-c9053e02
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.
- package/AstrologicalSignUtils.js.flow +105 -0
- package/ExampleExternalStateStore.js.flow +61 -0
- package/index.js +1 -1
- package/lib/AstrologicalSignUtils.js +62 -0
- package/lib/ExampleExternalStateStore.js +76 -0
- package/lib/resolvers/AstrologicalSignHouseResolver.js +49 -0
- package/lib/resolvers/AstrologicalSignNameResolver.js +49 -0
- package/lib/resolvers/AstrologicalSignOppositeResolver.js +50 -0
- package/lib/resolvers/AstrologicalSignSelfResolver.js +60 -0
- package/lib/resolvers/CounterPlusOneResolver.js +48 -0
- package/lib/resolvers/CounterSuspendsWhenOdd.js +72 -0
- package/lib/resolvers/LiveCounterResolver.js +63 -0
- package/lib/resolvers/LivePingPongResolver.js +61 -0
- package/lib/resolvers/QueryAllAstrologicalSignsResolver.js +53 -0
- package/lib/resolvers/ResolverThatThrows.js +56 -0
- package/lib/resolvers/ThrowBeforeReadResolver.js +52 -0
- package/lib/resolvers/UndefinedFieldResolver.js +50 -0
- package/lib/resolvers/UserAlwaysThrowsResolver.js +48 -0
- package/lib/resolvers/UserAlwaysThrowsTransitivelyResolver.js +48 -0
- package/lib/resolvers/UserAnotherClientEdgeResolver.js +47 -0
- package/lib/resolvers/UserAstrologicalSignResolver.js +53 -0
- package/lib/resolvers/UserBestFriendGreetingResolver.js +49 -0
- package/lib/resolvers/UserBestFriendShoutedGreetingResolver.js +49 -0
- package/lib/resolvers/UserClientEdgeResolver.js +47 -0
- package/lib/resolvers/UserConstantDependentResolver.js +49 -0
- package/lib/resolvers/UserConstantResolver.js +48 -0
- package/lib/resolvers/UserCustomGreetingResolver.js +51 -0
- package/lib/resolvers/UserGreetingResolver.js +51 -0
- package/lib/resolvers/UserNameAndCounterSuspendsWhenOdd.js +49 -0
- package/lib/resolvers/UserNamePassthroughResolver.js +46 -0
- package/lib/resolvers/UserNullClientEdgeResolver.js +47 -0
- package/lib/resolvers/UserProfilePictureResolver.js +48 -0
- package/lib/resolvers/UserProfilePictureUriSuspendsWhenTheCounterIsOdd.js +71 -0
- package/lib/resolvers/UserProfilePictureWithDefaultValueResolver.js +48 -0
- package/lib/resolvers/UserProfilePictureWithRuntimeArgumentResolver.js +51 -0
- package/lib/resolvers/UserReadsClientEdgeResolver.js +48 -0
- package/lib/resolvers/UserRequiredNameResolver.js +49 -0
- package/lib/resolvers/UserShoutedGreetingResolver.js +49 -0
- package/lib/resolvers/__generated__/AstrologicalSignHouseResolver.graphql.js +63 -0
- package/lib/resolvers/__generated__/AstrologicalSignNameResolver.graphql.js +63 -0
- package/lib/resolvers/__generated__/AstrologicalSignOppositeResolver.graphql.js +63 -0
- package/lib/resolvers/__generated__/AstrologicalSignSelfResolver.graphql.js +64 -0
- package/lib/resolvers/__generated__/ClientEdgeQuery_UserReadsClientEdgeResolver_client_edge.graphql.js +134 -0
- package/lib/resolvers/__generated__/CounterPlusOneResolver.graphql.js +68 -0
- package/lib/resolvers/__generated__/CounterSuspendsWhenOdd.graphql.js +70 -0
- package/lib/resolvers/__generated__/LiveCounterResolver.graphql.js +70 -0
- package/lib/resolvers/__generated__/LivePingPongResolver.graphql.js +70 -0
- package/lib/resolvers/__generated__/QueryAllAstrologicalSignsResolver.graphql.js +67 -0
- package/lib/resolvers/__generated__/RefetchableClientEdgeQuery_UserReadsClientEdgeResolver_client_edge.graphql.js +71 -0
- package/lib/resolvers/__generated__/ResolverThatThrows.graphql.js +61 -0
- package/lib/resolvers/__generated__/ThrowBeforeReadResolver.graphql.js +70 -0
- package/lib/resolvers/__generated__/UndefinedFieldResolver.graphql.js +70 -0
- package/lib/resolvers/__generated__/UserAlwaysThrowsResolver.graphql.js +61 -0
- package/lib/resolvers/__generated__/UserAlwaysThrowsTransitivelyResolver.graphql.js +63 -0
- package/lib/resolvers/__generated__/UserAnotherClientEdgeResolver.graphql.js +61 -0
- package/lib/resolvers/__generated__/UserAstrologicalSignResolver.graphql.js +89 -0
- package/lib/resolvers/__generated__/UserBestFriendGreetingResolver.graphql.js +100 -0
- package/lib/resolvers/__generated__/UserBestFriendShoutedGreetingResolver.graphql.js +107 -0
- package/lib/resolvers/__generated__/UserClientEdgeResolver.graphql.js +56 -0
- package/lib/resolvers/__generated__/UserConstantDependentResolver.graphql.js +63 -0
- package/lib/resolvers/__generated__/UserConstantResolver.graphql.js +56 -0
- package/lib/resolvers/__generated__/UserCustomGreetingResolver.graphql.js +56 -0
- package/lib/resolvers/__generated__/UserGreetingResolver.graphql.js +56 -0
- package/lib/resolvers/__generated__/UserNameAndCounterSuspendsWhenOdd.graphql.js +81 -0
- package/lib/resolvers/__generated__/UserNamePassthroughResolver.graphql.js +56 -0
- package/lib/resolvers/__generated__/UserNullClientEdgeResolver.graphql.js +56 -0
- package/lib/resolvers/__generated__/UserProfilePictureResolver.graphql.js +75 -0
- package/lib/resolvers/__generated__/UserProfilePictureUriSuspendsWhenTheCounterIsOdd.graphql.js +85 -0
- package/lib/resolvers/__generated__/UserProfilePictureWithDefaultValueResolver.graphql.js +75 -0
- package/lib/resolvers/__generated__/UserProfilePictureWithRuntimeArgumentResolver.graphql.js +75 -0
- package/lib/resolvers/__generated__/UserReadsClientEdgeResolver.graphql.js +84 -0
- package/lib/resolvers/__generated__/UserRequiredNameResolver.graphql.js +61 -0
- package/lib/resolvers/__generated__/UserShoutedGreetingResolver.graphql.js +63 -0
- package/package.json +2 -2
- package/relay-test-utils-internal.js +1 -1
- package/relay-test-utils-internal.min.js +1 -1
- package/resolvers/AstrologicalSignHouseResolver.js.flow +41 -0
- package/resolvers/AstrologicalSignNameResolver.js.flow +41 -0
- package/resolvers/AstrologicalSignOppositeResolver.js.flow +42 -0
- package/resolvers/AstrologicalSignSelfResolver.js.flow +55 -0
- package/resolvers/CounterPlusOneResolver.js.flow +41 -0
- package/resolvers/CounterSuspendsWhenOdd.js.flow +66 -0
- package/resolvers/LiveCounterResolver.js.flow +57 -0
- package/resolvers/LivePingPongResolver.js.flow +58 -0
- package/resolvers/QueryAllAstrologicalSignsResolver.js.flow +48 -0
- package/resolvers/ResolverThatThrows.js.flow +53 -0
- package/resolvers/ThrowBeforeReadResolver.js.flow +49 -0
- package/resolvers/UndefinedFieldResolver.js.flow +46 -0
- package/resolvers/UserAlwaysThrowsResolver.js.flow +41 -0
- package/resolvers/UserAlwaysThrowsTransitivelyResolver.js.flow +43 -0
- package/resolvers/UserAnotherClientEdgeResolver.js.flow +43 -0
- package/resolvers/UserAstrologicalSignResolver.js.flow +50 -0
- package/resolvers/UserBestFriendGreetingResolver.js.flow +49 -0
- package/resolvers/UserBestFriendShoutedGreetingResolver.js.flow +49 -0
- package/resolvers/UserClientEdgeResolver.js.flow +41 -0
- package/resolvers/UserConstantDependentResolver.js.flow +43 -0
- package/resolvers/UserConstantResolver.js.flow +41 -0
- package/resolvers/UserCustomGreetingResolver.js.flow +45 -0
- package/resolvers/UserGreetingResolver.js.flow +42 -0
- package/resolvers/UserNameAndCounterSuspendsWhenOdd.js.flow +45 -0
- package/resolvers/UserNamePassthroughResolver.js.flow +39 -0
- package/resolvers/UserNullClientEdgeResolver.js.flow +43 -0
- package/resolvers/UserProfilePictureResolver.js.flow +42 -0
- package/resolvers/UserProfilePictureUriSuspendsWhenTheCounterIsOdd.js.flow +65 -0
- package/resolvers/UserProfilePictureWithDefaultValueResolver.js.flow +44 -0
- package/resolvers/UserProfilePictureWithRuntimeArgumentResolver.js.flow +47 -0
- package/resolvers/UserReadsClientEdgeResolver.js.flow +45 -0
- package/resolvers/UserRequiredNameResolver.js.flow +41 -0
- package/resolvers/UserShoutedGreetingResolver.js.flow +40 -0
- package/resolvers/__generated__/AstrologicalSignHouseResolver.graphql.js.flow +64 -0
- package/resolvers/__generated__/AstrologicalSignNameResolver.graphql.js.flow +64 -0
- package/resolvers/__generated__/AstrologicalSignOppositeResolver.graphql.js.flow +64 -0
- package/resolvers/__generated__/AstrologicalSignSelfResolver.graphql.js.flow +67 -0
- package/resolvers/__generated__/ClientEdgeQuery_UserReadsClientEdgeResolver_client_edge.graphql.js.flow +141 -0
- package/resolvers/__generated__/CounterPlusOneResolver.graphql.js.flow +69 -0
- package/resolvers/__generated__/CounterSuspendsWhenOdd.graphql.js.flow +75 -0
- package/resolvers/__generated__/LiveCounterResolver.graphql.js.flow +75 -0
- package/resolvers/__generated__/LivePingPongResolver.graphql.js.flow +75 -0
- package/resolvers/__generated__/QueryAllAstrologicalSignsResolver.graphql.js.flow +70 -0
- package/resolvers/__generated__/RefetchableClientEdgeQuery_UserReadsClientEdgeResolver_client_edge.graphql.js.flow +76 -0
- package/resolvers/__generated__/ResolverThatThrows.graphql.js.flow +62 -0
- package/resolvers/__generated__/ThrowBeforeReadResolver.graphql.js.flow +75 -0
- package/resolvers/__generated__/UndefinedFieldResolver.graphql.js.flow +75 -0
- package/resolvers/__generated__/UserAlwaysThrowsResolver.graphql.js.flow +62 -0
- package/resolvers/__generated__/UserAlwaysThrowsTransitivelyResolver.graphql.js.flow +64 -0
- package/resolvers/__generated__/UserAnotherClientEdgeResolver.graphql.js.flow +62 -0
- package/resolvers/__generated__/UserAstrologicalSignResolver.graphql.js.flow +93 -0
- package/resolvers/__generated__/UserBestFriendGreetingResolver.graphql.js.flow +110 -0
- package/resolvers/__generated__/UserBestFriendShoutedGreetingResolver.graphql.js.flow +117 -0
- package/resolvers/__generated__/UserClientEdgeResolver.graphql.js.flow +57 -0
- package/resolvers/__generated__/UserConstantDependentResolver.graphql.js.flow +64 -0
- package/resolvers/__generated__/UserConstantResolver.graphql.js.flow +57 -0
- package/resolvers/__generated__/UserCustomGreetingResolver.graphql.js.flow +57 -0
- package/resolvers/__generated__/UserGreetingResolver.graphql.js.flow +57 -0
- package/resolvers/__generated__/UserNameAndCounterSuspendsWhenOdd.graphql.js.flow +85 -0
- package/resolvers/__generated__/UserNamePassthroughResolver.graphql.js.flow +57 -0
- package/resolvers/__generated__/UserNullClientEdgeResolver.graphql.js.flow +57 -0
- package/resolvers/__generated__/UserProfilePictureResolver.graphql.js.flow +82 -0
- package/resolvers/__generated__/UserProfilePictureUriSuspendsWhenTheCounterIsOdd.graphql.js.flow +91 -0
- package/resolvers/__generated__/UserProfilePictureWithDefaultValueResolver.graphql.js.flow +82 -0
- package/resolvers/__generated__/UserProfilePictureWithRuntimeArgumentResolver.graphql.js.flow +82 -0
- package/resolvers/__generated__/UserReadsClientEdgeResolver.graphql.js.flow +87 -0
- package/resolvers/__generated__/UserRequiredNameResolver.graphql.js.flow +62 -0
- package/resolvers/__generated__/UserShoutedGreetingResolver.graphql.js.flow +64 -0
|
@@ -0,0 +1,49 @@
|
|
|
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 {UserBestFriendGreetingResolver$key} from './__generated__/UserBestFriendGreetingResolver.graphql';
|
|
17
|
+
|
|
18
|
+
const {graphql} = require('relay-runtime');
|
|
19
|
+
const {readFragment} = require('relay-runtime/store/ResolverFragments');
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @RelayResolver
|
|
23
|
+
* @fieldName best_friend_greeting
|
|
24
|
+
* @rootFragment UserBestFriendGreetingResolver
|
|
25
|
+
* @onType User
|
|
26
|
+
*/
|
|
27
|
+
function UserBestFriendGreetingResolver(
|
|
28
|
+
rootKey: UserBestFriendGreetingResolver$key,
|
|
29
|
+
): string {
|
|
30
|
+
const user = readFragment(
|
|
31
|
+
graphql`
|
|
32
|
+
fragment UserBestFriendGreetingResolver on User {
|
|
33
|
+
friends(first: 1) {
|
|
34
|
+
edges {
|
|
35
|
+
cursor
|
|
36
|
+
node {
|
|
37
|
+
name
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
`,
|
|
43
|
+
rootKey,
|
|
44
|
+
);
|
|
45
|
+
const name = user?.friends?.edges?.[0]?.node?.name ?? 'Stranger';
|
|
46
|
+
return `Hello, ${name}!`;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
module.exports = UserBestFriendGreetingResolver;
|
|
@@ -0,0 +1,49 @@
|
|
|
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 {UserBestFriendShoutedGreetingResolver$key} from './__generated__/UserBestFriendShoutedGreetingResolver.graphql';
|
|
17
|
+
|
|
18
|
+
const {graphql} = require('relay-runtime');
|
|
19
|
+
const {readFragment} = require('relay-runtime/store/ResolverFragments');
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @RelayResolver
|
|
23
|
+
* @fieldName best_friend_shouted_greeting
|
|
24
|
+
* @rootFragment UserBestFriendShoutedGreetingResolver
|
|
25
|
+
* @onType User
|
|
26
|
+
*/
|
|
27
|
+
function userBestFriendShoutedGreeting(
|
|
28
|
+
rootKey: UserBestFriendShoutedGreetingResolver$key,
|
|
29
|
+
): string {
|
|
30
|
+
const user = readFragment(
|
|
31
|
+
graphql`
|
|
32
|
+
fragment UserBestFriendShoutedGreetingResolver on User {
|
|
33
|
+
friends(first: 1) {
|
|
34
|
+
edges {
|
|
35
|
+
cursor
|
|
36
|
+
node {
|
|
37
|
+
greeting
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
`,
|
|
43
|
+
rootKey,
|
|
44
|
+
);
|
|
45
|
+
const greeting = user?.friends?.edges?.[0]?.node?.greeting ?? 'Greetings!';
|
|
46
|
+
return greeting.toUpperCase();
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
module.exports = userBestFriendShoutedGreeting;
|
|
@@ -0,0 +1,41 @@
|
|
|
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 {UserClientEdgeResolver$key} from './__generated__/UserClientEdgeResolver.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 client_edge
|
|
25
|
+
* @rootFragment UserClientEdgeResolver
|
|
26
|
+
* @edgeTo User
|
|
27
|
+
* @onType User
|
|
28
|
+
*/
|
|
29
|
+
function UserClientEdgeResolver(rootKey: UserClientEdgeResolver$key): DataID {
|
|
30
|
+
readFragment(
|
|
31
|
+
graphql`
|
|
32
|
+
fragment UserClientEdgeResolver on User {
|
|
33
|
+
name
|
|
34
|
+
}
|
|
35
|
+
`,
|
|
36
|
+
rootKey,
|
|
37
|
+
);
|
|
38
|
+
return '1337';
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
module.exports = UserClientEdgeResolver;
|
|
@@ -0,0 +1,43 @@
|
|
|
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 {UserConstantDependentResolver$key} from './__generated__/UserConstantDependentResolver.graphql';
|
|
17
|
+
|
|
18
|
+
const {graphql} = require('relay-runtime');
|
|
19
|
+
const {readFragment} = require('relay-runtime/store/ResolverFragments');
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @RelayResolver
|
|
23
|
+
* @fieldName constant_dependent
|
|
24
|
+
* @rootFragment UserConstantDependentResolver
|
|
25
|
+
* @onType User
|
|
26
|
+
*/
|
|
27
|
+
function UserConstantDependentResolver(
|
|
28
|
+
rootKey: UserConstantDependentResolver$key,
|
|
29
|
+
): number {
|
|
30
|
+
const user = readFragment(
|
|
31
|
+
graphql`
|
|
32
|
+
fragment UserConstantDependentResolver on User {
|
|
33
|
+
constant
|
|
34
|
+
}
|
|
35
|
+
`,
|
|
36
|
+
rootKey,
|
|
37
|
+
);
|
|
38
|
+
UserConstantDependentResolver._relayResolverTestCallCount =
|
|
39
|
+
(UserConstantDependentResolver._relayResolverTestCallCount ?? 0) + 1;
|
|
40
|
+
return (user.constant ?? NaN) + 1;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
module.exports = UserConstantDependentResolver;
|
|
@@ -0,0 +1,41 @@
|
|
|
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 {UserConstantResolver$key} from './__generated__/UserConstantResolver.graphql';
|
|
17
|
+
|
|
18
|
+
const {graphql} = require('relay-runtime');
|
|
19
|
+
const {readFragment} = require('relay-runtime/store/ResolverFragments');
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @RelayResolver
|
|
23
|
+
* @fieldName constant
|
|
24
|
+
* @rootFragment UserConstantResolver
|
|
25
|
+
* @onType User
|
|
26
|
+
*
|
|
27
|
+
* You thought "one" was the loneliest number? Pffft. Let me introduce you to zero!
|
|
28
|
+
*/
|
|
29
|
+
function UserConstantResolver(rootKey: UserConstantResolver$key): number {
|
|
30
|
+
readFragment(
|
|
31
|
+
graphql`
|
|
32
|
+
fragment UserConstantResolver on User {
|
|
33
|
+
name
|
|
34
|
+
}
|
|
35
|
+
`,
|
|
36
|
+
rootKey,
|
|
37
|
+
);
|
|
38
|
+
return 0;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
module.exports = UserConstantResolver;
|
|
@@ -0,0 +1,45 @@
|
|
|
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 {UserCustomGreetingResolver$key} from './__generated__/UserCustomGreetingResolver.graphql';
|
|
17
|
+
|
|
18
|
+
const {graphql} = require('relay-runtime');
|
|
19
|
+
const {readFragment} = require('relay-runtime/store/ResolverFragments');
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @RelayResolver
|
|
23
|
+
* @fieldName custom_greeting(salutation: String!)
|
|
24
|
+
* @rootFragment UserCustomGreetingResolver
|
|
25
|
+
* @onType User
|
|
26
|
+
*
|
|
27
|
+
* Greet the user with a custom salutation provided via arguments.
|
|
28
|
+
*/
|
|
29
|
+
function userGreeting(
|
|
30
|
+
rootKey: UserCustomGreetingResolver$key,
|
|
31
|
+
args: {|salutation: string|},
|
|
32
|
+
): string {
|
|
33
|
+
const user = readFragment(
|
|
34
|
+
graphql`
|
|
35
|
+
fragment UserCustomGreetingResolver on User {
|
|
36
|
+
name
|
|
37
|
+
}
|
|
38
|
+
`,
|
|
39
|
+
rootKey,
|
|
40
|
+
);
|
|
41
|
+
const name = user.name ?? 'Stranger';
|
|
42
|
+
return `${args.salutation}, ${name}!`;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
module.exports = userGreeting;
|
|
@@ -0,0 +1,42 @@
|
|
|
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 {UserGreetingResolver$key} from './__generated__/UserGreetingResolver.graphql';
|
|
17
|
+
|
|
18
|
+
const {graphql} = require('relay-runtime');
|
|
19
|
+
const {readFragment} = require('relay-runtime/store/ResolverFragments');
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @RelayResolver
|
|
23
|
+
* @fieldName greeting
|
|
24
|
+
* @rootFragment UserGreetingResolver
|
|
25
|
+
* @onType User
|
|
26
|
+
*
|
|
27
|
+
* Greet the user.
|
|
28
|
+
*/
|
|
29
|
+
function userGreeting(rootKey: UserGreetingResolver$key): string {
|
|
30
|
+
const user = readFragment(
|
|
31
|
+
graphql`
|
|
32
|
+
fragment UserGreetingResolver on User {
|
|
33
|
+
name
|
|
34
|
+
}
|
|
35
|
+
`,
|
|
36
|
+
rootKey,
|
|
37
|
+
);
|
|
38
|
+
const name = user.name ?? 'Stranger';
|
|
39
|
+
return `Hello, ${name}!`;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
module.exports = userGreeting;
|
|
@@ -0,0 +1,45 @@
|
|
|
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 {UserNameAndCounterSuspendsWhenOdd$key} from './__generated__/UserNameAndCounterSuspendsWhenOdd.graphql';
|
|
17
|
+
|
|
18
|
+
const {graphql} = require('relay-runtime');
|
|
19
|
+
const {readFragment} = require('relay-runtime/store/ResolverFragments');
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @RelayResolver
|
|
23
|
+
* @fieldName user_name_and_counter_suspends_when_odd
|
|
24
|
+
* @rootFragment UserNameAndCounterSuspendsWhenOdd
|
|
25
|
+
* @onType Query
|
|
26
|
+
*
|
|
27
|
+
*/
|
|
28
|
+
function UserNameAndCounterSuspendsWhenOdd(
|
|
29
|
+
rootKey: UserNameAndCounterSuspendsWhenOdd$key,
|
|
30
|
+
): string {
|
|
31
|
+
const data = readFragment(
|
|
32
|
+
graphql`
|
|
33
|
+
fragment UserNameAndCounterSuspendsWhenOdd on Query {
|
|
34
|
+
me {
|
|
35
|
+
name
|
|
36
|
+
}
|
|
37
|
+
counter_suspends_when_odd
|
|
38
|
+
}
|
|
39
|
+
`,
|
|
40
|
+
rootKey,
|
|
41
|
+
);
|
|
42
|
+
return `${String(data.me?.name)} ${String(data.counter_suspends_when_odd)}`;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
module.exports = UserNameAndCounterSuspendsWhenOdd;
|
|
@@ -0,0 +1,39 @@
|
|
|
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 {UserNamePassthroughResolver$key} from './__generated__/UserNamePassthroughResolver.graphql';
|
|
17
|
+
|
|
18
|
+
const {graphql} = require('relay-runtime');
|
|
19
|
+
const {readFragment} = require('relay-runtime/store/ResolverFragments');
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @RelayResolver
|
|
23
|
+
* @fieldName name_passthrough
|
|
24
|
+
* @rootFragment UserNamePassthroughResolver
|
|
25
|
+
* @onType User
|
|
26
|
+
*/
|
|
27
|
+
function userGreeting(rootKey: UserNamePassthroughResolver$key): ?string {
|
|
28
|
+
const user = readFragment(
|
|
29
|
+
graphql`
|
|
30
|
+
fragment UserNamePassthroughResolver on User {
|
|
31
|
+
name
|
|
32
|
+
}
|
|
33
|
+
`,
|
|
34
|
+
rootKey,
|
|
35
|
+
);
|
|
36
|
+
return user.name;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
module.exports = userGreeting;
|
|
@@ -0,0 +1,43 @@
|
|
|
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 {UserNullClientEdgeResolver$key} from './__generated__/UserNullClientEdgeResolver.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 null_client_edge
|
|
25
|
+
* @rootFragment UserNullClientEdgeResolver
|
|
26
|
+
* @onType User
|
|
27
|
+
* @edgeTo User
|
|
28
|
+
*/
|
|
29
|
+
function UserNullClientEdgeResolver(
|
|
30
|
+
rootKey: UserNullClientEdgeResolver$key,
|
|
31
|
+
): ?DataID {
|
|
32
|
+
readFragment(
|
|
33
|
+
graphql`
|
|
34
|
+
fragment UserNullClientEdgeResolver on User {
|
|
35
|
+
name
|
|
36
|
+
}
|
|
37
|
+
`,
|
|
38
|
+
rootKey,
|
|
39
|
+
);
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
module.exports = UserNullClientEdgeResolver;
|
|
@@ -0,0 +1,42 @@
|
|
|
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 {UserProfilePictureResolver$key} from './__generated__/UserProfilePictureResolver.graphql';
|
|
17
|
+
|
|
18
|
+
const {graphql} = require('relay-runtime');
|
|
19
|
+
const {readFragment} = require('relay-runtime/store/ResolverFragments');
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @RelayResolver
|
|
23
|
+
* @fieldName user_profile_picture_uri_with_scale
|
|
24
|
+
* @rootFragment UserProfilePictureResolver
|
|
25
|
+
* @onType User
|
|
26
|
+
*/
|
|
27
|
+
function userProfilePicture(rootKey: UserProfilePictureResolver$key): ?string {
|
|
28
|
+
const user = readFragment(
|
|
29
|
+
graphql`
|
|
30
|
+
fragment UserProfilePictureResolver on User
|
|
31
|
+
@argumentDefinitions(scale: {type: "Float"}) {
|
|
32
|
+
profile_picture(scale: $scale) {
|
|
33
|
+
uri
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
`,
|
|
37
|
+
rootKey,
|
|
38
|
+
);
|
|
39
|
+
return user?.profile_picture?.uri;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
module.exports = userProfilePicture;
|
|
@@ -0,0 +1,65 @@
|
|
|
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 {UserProfilePictureUriSuspendsWhenTheCounterIsOdd$key} from './__generated__/UserProfilePictureUriSuspendsWhenTheCounterIsOdd.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 user_profile_picture_uri_suspends_when_the_counter_is_odd
|
|
29
|
+
* @rootFragment UserProfilePictureUriSuspendsWhenTheCounterIsOdd
|
|
30
|
+
* @onType User
|
|
31
|
+
* @live
|
|
32
|
+
*
|
|
33
|
+
* This field is returing the profile picture url, when s
|
|
34
|
+
*/
|
|
35
|
+
function UserProfilePictureUriSuspendsWhenTheCounterIsOdd(
|
|
36
|
+
rootKey: UserProfilePictureUriSuspendsWhenTheCounterIsOdd$key,
|
|
37
|
+
): LiveState<?string> {
|
|
38
|
+
const data = readFragment(
|
|
39
|
+
graphql`
|
|
40
|
+
fragment UserProfilePictureUriSuspendsWhenTheCounterIsOdd on User
|
|
41
|
+
@argumentDefinitions(scale: {type: "Float"}) {
|
|
42
|
+
greeting
|
|
43
|
+
uri: user_profile_picture_uri_with_scale(scale: $scale)
|
|
44
|
+
}
|
|
45
|
+
`,
|
|
46
|
+
rootKey,
|
|
47
|
+
);
|
|
48
|
+
return {
|
|
49
|
+
read() {
|
|
50
|
+
const number = Selectors.getNumber(GLOBAL_STORE.getState());
|
|
51
|
+
if (number % 2 !== 0) {
|
|
52
|
+
return `${String(data.greeting)} Picture Url: ${String(data.uri)}`;
|
|
53
|
+
} else {
|
|
54
|
+
return suspenseSentinel();
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
subscribe(cb): () => void {
|
|
58
|
+
// Here we could try to run the selector and short-circut if the value has
|
|
59
|
+
// not changed, but for now we'll over-notify.
|
|
60
|
+
return GLOBAL_STORE.subscribe(cb);
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
module.exports = UserProfilePictureUriSuspendsWhenTheCounterIsOdd;
|
|
@@ -0,0 +1,44 @@
|
|
|
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 {UserProfilePictureWithDefaultValueResolver$key} from './__generated__/UserProfilePictureWithDefaultValueResolver.graphql';
|
|
17
|
+
|
|
18
|
+
const {graphql} = require('relay-runtime');
|
|
19
|
+
const {readFragment} = require('relay-runtime/store/ResolverFragments');
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @RelayResolver
|
|
23
|
+
* @fieldName user_profile_picture_uri_with_scale_and_default_value
|
|
24
|
+
* @rootFragment UserProfilePictureWithDefaultValueResolver
|
|
25
|
+
* @onType User
|
|
26
|
+
*/
|
|
27
|
+
function userProfilePicture2(
|
|
28
|
+
rootKey: UserProfilePictureWithDefaultValueResolver$key,
|
|
29
|
+
): ?string {
|
|
30
|
+
const user = readFragment(
|
|
31
|
+
graphql`
|
|
32
|
+
fragment UserProfilePictureWithDefaultValueResolver on User
|
|
33
|
+
@argumentDefinitions(scale: {type: "Float", defaultValue: 1.5}) {
|
|
34
|
+
profile_picture(scale: $scale) {
|
|
35
|
+
uri
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
`,
|
|
39
|
+
rootKey,
|
|
40
|
+
);
|
|
41
|
+
return user?.profile_picture?.uri;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
module.exports = userProfilePicture2;
|
|
@@ -0,0 +1,47 @@
|
|
|
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 {UserProfilePictureWithRuntimeArgumentResolver$key} from './__generated__/UserProfilePictureWithRuntimeArgumentResolver.graphql';
|
|
17
|
+
|
|
18
|
+
const {graphql} = require('relay-runtime');
|
|
19
|
+
const {readFragment} = require('relay-runtime/store/ResolverFragments');
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @RelayResolver
|
|
23
|
+
* @fieldName user_profile_picture_uri_with_scale_and_additional_argument(name: String)
|
|
24
|
+
* @rootFragment UserProfilePictureWithRuntimeArgumentResolver
|
|
25
|
+
* @onType User
|
|
26
|
+
*/
|
|
27
|
+
function UserProfilePictureWithRuntimeArgumentResolver(
|
|
28
|
+
rootKey: UserProfilePictureWithRuntimeArgumentResolver$key,
|
|
29
|
+
args: mixed,
|
|
30
|
+
): ?string {
|
|
31
|
+
const {name} = args != null && typeof args === 'object' ? args : {};
|
|
32
|
+
|
|
33
|
+
const user = readFragment(
|
|
34
|
+
graphql`
|
|
35
|
+
fragment UserProfilePictureWithRuntimeArgumentResolver on User
|
|
36
|
+
@argumentDefinitions(scale: {type: "Float"}) {
|
|
37
|
+
profile_picture(scale: $scale) {
|
|
38
|
+
uri
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
`,
|
|
42
|
+
rootKey,
|
|
43
|
+
);
|
|
44
|
+
return `${String(name)}: ${String(user?.profile_picture?.uri)}`;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
module.exports = UserProfilePictureWithRuntimeArgumentResolver;
|
|
@@ -0,0 +1,45 @@
|
|
|
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 {UserReadsClientEdgeResolver$key} from './__generated__/UserReadsClientEdgeResolver.graphql';
|
|
17
|
+
|
|
18
|
+
const {graphql} = require('relay-runtime');
|
|
19
|
+
const {readFragment} = require('relay-runtime/store/ResolverFragments');
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @RelayResolver
|
|
23
|
+
* @fieldName reads_client_edge
|
|
24
|
+
* @rootFragment UserReadsClientEdgeResolver
|
|
25
|
+
* @onType User
|
|
26
|
+
*
|
|
27
|
+
* Reads a client edge field and then returns a string
|
|
28
|
+
*/
|
|
29
|
+
function userClientEdgeResolver(
|
|
30
|
+
rootKey: UserReadsClientEdgeResolver$key,
|
|
31
|
+
): string {
|
|
32
|
+
readFragment(
|
|
33
|
+
graphql`
|
|
34
|
+
fragment UserReadsClientEdgeResolver on User {
|
|
35
|
+
client_edge @waterfall {
|
|
36
|
+
name
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
`,
|
|
40
|
+
rootKey,
|
|
41
|
+
);
|
|
42
|
+
return 'Hello. I read a client edge.';
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
module.exports = userClientEdgeResolver;
|