-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Unify handling of plural/nullabile resolver field types
Reviewed By: voideanvalue Differential Revision: D46163784 fbshipit-source-id: 53d45bb87db299460404f7fc4cc4a56750bbf64e
- Loading branch information
1 parent
2732238
commit 6e4ff95
Showing
126 changed files
with
714 additions
and
262 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
50 changes: 50 additions & 0 deletions
50
...r/crates/relay-typegen/tests/generate_flow/fixtures/relay-resolver-scalar-plural.expected
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
==================================== INPUT ==================================== | ||
fragment relayResolver_PopStarNameResolverFragment_name on User { | ||
name | ||
} | ||
|
||
query relayResolver_Query { | ||
me { | ||
pop_star_name | ||
} | ||
} | ||
|
||
# %extensions% | ||
|
||
extend type User { | ||
pop_star_name: [RelayResolverValue] | ||
@relay_resolver( | ||
fragment_name: "relayResolver_PopStarNameResolverFragment_name" | ||
import_path: "./foo/bar/baz/PopStarNameResolver.js" | ||
) | ||
} | ||
==================================== OUTPUT =================================== | ||
import type { relayResolver_PopStarNameResolverFragment_name$key } from "relayResolver_PopStarNameResolverFragment_name.graphql"; | ||
import userPopStarNameResolverType from "PopStarNameResolver"; | ||
// Type assertion validating that `userPopStarNameResolverType` resolver is correctly implemented. | ||
// A type error here indicates that the type signature of the resolver module is incorrect. | ||
(userPopStarNameResolverType: ( | ||
rootKey: relayResolver_PopStarNameResolverFragment_name$key, | ||
) => ?$ReadOnlyArray<?mixed>); | ||
export type relayResolver_Query$variables = {||}; | ||
export type relayResolver_Query$data = {| | ||
+me: ?{| | ||
+pop_star_name: ?$Call<<R>((...empty[]) => R) => R, typeof userPopStarNameResolverType>, | ||
|}, | ||
|}; | ||
export type relayResolver_Query = {| | ||
response: relayResolver_Query$data, | ||
variables: relayResolver_Query$variables, | ||
|}; | ||
------------------------------------------------------------------------------- | ||
import type { FragmentType } from "relay-runtime"; | ||
declare export opaque type relayResolver_PopStarNameResolverFragment_name$fragmentType: FragmentType; | ||
export type relayResolver_PopStarNameResolverFragment_name$data = {| | ||
+name: ?string, | ||
+$fragmentType: relayResolver_PopStarNameResolverFragment_name$fragmentType, | ||
|}; | ||
export type relayResolver_PopStarNameResolverFragment_name$key = { | ||
+$data?: relayResolver_PopStarNameResolverFragment_name$data, | ||
+$fragmentSpreads: relayResolver_PopStarNameResolverFragment_name$fragmentType, | ||
... | ||
}; |
19 changes: 19 additions & 0 deletions
19
...er/crates/relay-typegen/tests/generate_flow/fixtures/relay-resolver-scalar-plural.graphql
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
fragment relayResolver_PopStarNameResolverFragment_name on User { | ||
name | ||
} | ||
|
||
query relayResolver_Query { | ||
me { | ||
pop_star_name | ||
} | ||
} | ||
|
||
# %extensions% | ||
|
||
extend type User { | ||
pop_star_name: [RelayResolverValue] | ||
@relay_resolver( | ||
fragment_name: "relayResolver_PopStarNameResolverFragment_name" | ||
import_path: "./foo/bar/baz/PopStarNameResolver.js" | ||
) | ||
} |
80 changes: 80 additions & 0 deletions
80
...ests/generate_flow/fixtures/relay-resolver-with-output-type-client-object-plural.expected
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
==================================== INPUT ==================================== | ||
fragment Foo_user on User { | ||
poppy: pop_star_name { | ||
__typename | ||
} | ||
} | ||
|
||
fragment PopStarNameResolverFragment_name on User { | ||
name | ||
address { | ||
street | ||
} | ||
parents { | ||
lastName | ||
} | ||
} | ||
|
||
# %extensions% | ||
|
||
type ClientUser { | ||
name: String | ||
} | ||
|
||
extend type User { | ||
pop_star_name: [ClientUser] | ||
@relay_resolver( | ||
fragment_name: "PopStarNameResolverFragment_name" | ||
import_path: "PopStarNameResolver" | ||
has_output_type: true | ||
) | ||
} | ||
==================================== OUTPUT =================================== | ||
export type User__pop_star_name$normalization$variables = {||}; | ||
export type User__pop_star_name$normalization$data = {| | ||
+name: ?string, | ||
|}; | ||
export type User__pop_star_name$normalization = {| | ||
response: User__pop_star_name$normalization$data, | ||
variables: User__pop_star_name$normalization$variables, | ||
|}; | ||
------------------------------------------------------------------------------- | ||
import type { PopStarNameResolverFragment_name$key } from "PopStarNameResolverFragment_name.graphql"; | ||
import type { User__pop_star_name$normalization } from "User__pop_star_name$normalization.graphql"; | ||
import type { FragmentType } from "relay-runtime"; | ||
import userPopStarNameResolverType from "PopStarNameResolver"; | ||
// Type assertion validating that `userPopStarNameResolverType` resolver is correctly implemented. | ||
// A type error here indicates that the type signature of the resolver module is incorrect. | ||
(userPopStarNameResolverType: ( | ||
rootKey: PopStarNameResolverFragment_name$key, | ||
) => ?$ReadOnlyArray<?User__pop_star_name$normalization>); | ||
declare export opaque type Foo_user$fragmentType: FragmentType; | ||
export type Foo_user$data = {| | ||
+poppy: ?$ReadOnlyArray<?{| | ||
+__typename: "ClientUser", | ||
|}>, | ||
+$fragmentType: Foo_user$fragmentType, | ||
|}; | ||
export type Foo_user$key = { | ||
+$data?: Foo_user$data, | ||
+$fragmentSpreads: Foo_user$fragmentType, | ||
... | ||
}; | ||
------------------------------------------------------------------------------- | ||
import type { FragmentType } from "relay-runtime"; | ||
declare export opaque type PopStarNameResolverFragment_name$fragmentType: FragmentType; | ||
export type PopStarNameResolverFragment_name$data = {| | ||
+address: ?{| | ||
+street: ?string, | ||
|}, | ||
+name: ?string, | ||
+parents: $ReadOnlyArray<{| | ||
+lastName: ?string, | ||
|}>, | ||
+$fragmentType: PopStarNameResolverFragment_name$fragmentType, | ||
|}; | ||
export type PopStarNameResolverFragment_name$key = { | ||
+$data?: PopStarNameResolverFragment_name$data, | ||
+$fragmentSpreads: PopStarNameResolverFragment_name$fragmentType, | ||
... | ||
}; |
30 changes: 30 additions & 0 deletions
30
...tests/generate_flow/fixtures/relay-resolver-with-output-type-client-object-plural.graphql
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
fragment Foo_user on User { | ||
poppy: pop_star_name { | ||
__typename | ||
} | ||
} | ||
|
||
fragment PopStarNameResolverFragment_name on User { | ||
name | ||
address { | ||
street | ||
} | ||
parents { | ||
lastName | ||
} | ||
} | ||
|
||
# %extensions% | ||
|
||
type ClientUser { | ||
name: String | ||
} | ||
|
||
extend type User { | ||
pop_star_name: [ClientUser] | ||
@relay_resolver( | ||
fragment_name: "PopStarNameResolverFragment_name" | ||
import_path: "PopStarNameResolver" | ||
has_output_type: true | ||
) | ||
} |
Oops, something went wrong.