Skip to content

Commit

Permalink
remove object makers, and leverage optional fields for input objects …
Browse files Browse the repository at this point in the history
…and variables
  • Loading branch information
zth committed Jun 10, 2023
1 parent 89bccc2 commit fd6b07a
Show file tree
Hide file tree
Showing 74 changed files with 224 additions and 565 deletions.
2 changes: 1 addition & 1 deletion packages/relay
Submodule relay updated 71 files
+6 −52 compiler/crates/relay-compiler/src/build_project/rescript_generate_extra_files.rs
+43 −152 compiler/crates/relay-typegen/src/rescript.rs
+19 −73 compiler/test-project-res/src/__generated__/RelaySchemaAssets_graphql.res
+2 −2 compiler/test-project-res/src/__generated__/TestConnectionsUnion_user_graphql.res
+2 −2 compiler/test-project-res/src/__generated__/TestConnectionsWithConstantValues_user_graphql.res
+2 −2 compiler/test-project-res/src/__generated__/TestConnectionsWithEmptyFilters_user_graphql.res
+2 −2 compiler/test-project-res/src/__generated__/TestConnectionsWithFilters_user_graphql.res
+2 −2 compiler/test-project-res/src/__generated__/TestConnections_user_graphql.res
+3 −9 compiler/test-project-res/src/__generated__/TestCustomScalarsQuery_graphql.res
+2 −3 compiler/test-project-res/src/__generated__/TestFragmentQuery_graphql.res
+2 −2 compiler/test-project-res/src/__generated__/TestFragment_allowUnsafeEnum_graphql.res
+2 −2 compiler/test-project-res/src/__generated__/TestFragment_ignoreUnused_graphql.res
+2 −2 compiler/test-project-res/src/__generated__/TestFragment_inline_graphql.res
+2 −2 compiler/test-project-res/src/__generated__/TestFragment_plural_user_graphql.res
+2 −2 compiler/test-project-res/src/__generated__/TestFragment_requiredPlural_user_graphql.res
+2 −2 compiler/test-project-res/src/__generated__/TestFragment_requiredUnionPlural_member_graphql.res
+2 −2 compiler/test-project-res/src/__generated__/TestFragment_requiredUnion_member_graphql.res
+2 −2 compiler/test-project-res/src/__generated__/TestFragment_required_user_graphql.res
+2 −2 compiler/test-project-res/src/__generated__/TestFragment_sub_user_graphql.res
+2 −2 compiler/test-project-res/src/__generated__/TestFragment_user_graphql.res
+2 −3 compiler/test-project-res/src/__generated__/TestLocalPayloadQuery_graphql.res
+2 −7 compiler/test-project-res/src/__generated__/TestLocalPayloadViaNodeInterfaceQuery_graphql.res
+2 −2 compiler/test-project-res/src/__generated__/TestLocalPayload_user_graphql.res
+2 −3 compiler/test-project-res/src/__generated__/TestMissingFieldHandlersMeQuery_graphql.res
+2 −3 compiler/test-project-res/src/__generated__/TestMissingFieldHandlersQuery_graphql.res
+2 −2 compiler/test-project-res/src/__generated__/TestMutationInline_user_graphql.res
+2 −22 compiler/test-project-res/src/__generated__/TestMutationNullabilityMutation_graphql.res
+2 −3 compiler/test-project-res/src/__generated__/TestMutationQuery_graphql.res
+2 −21 compiler/test-project-res/src/__generated__/TestMutationSetOnlineStatusComplexMutation_graphql.res
+2 −30 compiler/test-project-res/src/__generated__/TestMutationSetOnlineStatusMutation_graphql.res
+2 −28 compiler/test-project-res/src/__generated__/TestMutationWithInlineFragmentSetOnlineStatusMutation_graphql.res
+2 −46 compiler/test-project-res/src/__generated__/TestMutationWithMultipleTargetsMutation_graphql.res
+2 −45 compiler/test-project-res/src/__generated__/TestMutationWithOnlyFragmentSetOnlineStatusMutation_graphql.res
+2 −26 compiler/test-project-res/src/__generated__/TestMutationWithRecursiveInputsMutation_graphql.res
+2 −27 compiler/test-project-res/src/__generated__/TestMutationWithRecursiveInputsNullableMutation_graphql.res
+2 −2 compiler/test-project-res/src/__generated__/TestMutation_user_graphql.res
+2 −3 compiler/test-project-res/src/__generated__/TestNodeInterfaceOnInterfaceQuery_graphql.res
+2 −3 compiler/test-project-res/src/__generated__/TestNodeInterfaceOnUnionQuery_graphql.res
+2 −3 compiler/test-project-res/src/__generated__/TestNodeInterfaceQuery_graphql.res
+2 −3 compiler/test-project-res/src/__generated__/TestObserverQuery_graphql.res
+2 −7 compiler/test-project-res/src/__generated__/TestPaginationInNodeQuery_graphql.res
+5 −14 compiler/test-project-res/src/__generated__/TestPaginationInNodeRefetchQuery_graphql.res
+2 −2 compiler/test-project-res/src/__generated__/TestPaginationInNode_query_graphql.res
+2 −2 compiler/test-project-res/src/__generated__/TestPaginationInNode_user_graphql.res
+2 −7 compiler/test-project-res/src/__generated__/TestPaginationUnionQuery_graphql.res
+5 −14 compiler/test-project-res/src/__generated__/TestPaginationUnionRefetchQuery_graphql.res
+2 −2 compiler/test-project-res/src/__generated__/TestPaginationUnion_query_graphql.res
+2 −2 compiler/test-project-res/src/__generated__/TestPaginationUnion_user_graphql.res
+2 −34 compiler/test-project-res/src/__generated__/TestProvidedVariablesQuery_graphql.res
+2 −2 compiler/test-project-res/src/__generated__/TestProvidedVariables_user_graphql.res
+2 −16 compiler/test-project-res/src/__generated__/TestQueryInputObjQuery_graphql.res
+2 −3 compiler/test-project-res/src/__generated__/TestQueryWithRequiredQuery_graphql.res
+2 −3 compiler/test-project-res/src/__generated__/TestQueryWithRequired_BubbleToTop_Query_graphql.res
+3 −9 compiler/test-project-res/src/__generated__/TestQuery_graphql.res
+2 −7 compiler/test-project-res/src/__generated__/TestRefetchingInNodeQuery_graphql.res
+4 −12 compiler/test-project-res/src/__generated__/TestRefetchingInNodeRefetchQuery_graphql.res
+2 −2 compiler/test-project-res/src/__generated__/TestRefetchingInNode_user_graphql.res
+2 −3 compiler/test-project-res/src/__generated__/TestRefetchingNoArgsRefetchQuery_graphql.res
+2 −2 compiler/test-project-res/src/__generated__/TestRefetchingNoArgs_query_graphql.res
+2 −3 compiler/test-project-res/src/__generated__/TestRefetchingQuery_graphql.res
+4 −12 compiler/test-project-res/src/__generated__/TestRefetchingRefetchQuery_graphql.res
+2 −2 compiler/test-project-res/src/__generated__/TestRefetching_user_graphql.res
+2 −2 compiler/test-project-res/src/__generated__/TestRelayResolver_graphql.res
+2 −3 compiler/test-project-res/src/__generated__/TestSubscriptionQuery_graphql.res
+2 −7 compiler/test-project-res/src/__generated__/TestSubscriptionUserUpdatedSubscription_graphql.res
+2 −2 compiler/test-project-res/src/__generated__/TestSubscription_user_graphql.res
+2 −3 compiler/test-project-res/src/__generated__/TestUnionFragmentQuery_graphql.res
+2 −2 compiler/test-project-res/src/__generated__/TestUnionFragmentUser_user_graphql.res
+2 −2 compiler/test-project-res/src/__generated__/TestUnionFragment_member_graphql.res
+2 −2 compiler/test-project-res/src/__generated__/TestUnionFragment_plural_member_graphql.res
+2 −3 compiler/test-project-res/src/__generated__/TestUnionsQuery_graphql.res
9 changes: 5 additions & 4 deletions packages/rescript-relay/__tests__/ProvidedVariables.res
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,14 @@ module Bool = {
}

module InputC = {
open RelaySchemaAssets_graphql
let get = () => make_InputC(~intStr=123, ~recursiveC=make_InputC(~intStr=234, ()), ())
let get = (): RelaySchemaAssets_graphql.input_InputC => {
intStr: 123,
recursiveC: {intStr: 234},
}
}

module InputCArr = {
open RelaySchemaAssets_graphql
let get = () => Some([make_InputC(~intStr=123, ())])
let get = (): option<array<RelaySchemaAssets_graphql.input_InputC>> => Some([{intStr: 123}])
}

module IntStr = {
Expand Down
8 changes: 4 additions & 4 deletions packages/rescript-relay/__tests__/Test_connections.res
Original file line number Diff line number Diff line change
Expand Up @@ -142,13 +142,13 @@ module Test = {
<button
onClick={_ => {
addFriend(
~variables=AddFriendMutation.makeVariables(
~connections={
~variables={
connections: {
open TestConnections_user_graphql
[user.__id->makeConnectionId(~beforeDate=makeDate(), ())]
},
~friendId="123",
),
friendId: "123",
},
(),
)->RescriptRelay.Disposable.ignore
}}>
Expand Down
2 changes: 1 addition & 1 deletion packages/rescript-relay/__tests__/Test_customScalars.res
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ module Test = {
let query = {
Query.use(
~variables={
beforeDate: Some(Js.Date.fromFloat(1514764800000.)),
beforeDate: Js.Date.fromFloat(1514764800000.),
number: [2],
},
(),
Expand Down
96 changes: 42 additions & 54 deletions packages/rescript-relay/__tests__/Test_mutation.res
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ module Test = {
onClick={_ => {
let _ = {
open Mutation
commitMutation(~environment, ~variables=makeVariables(~onlineStatus=Idle), ())
commitMutation(~environment, ~variables={onlineStatus: Idle}, ())
}
}}>
{React.string("Change online status")}
Expand All @@ -125,14 +125,14 @@ module Test = {
open MutationWithOnlyFragment
commitMutation(
~environment,
~variables=makeVariables(~onlineStatus=Idle),
~optimisticResponse=makeOptimisticResponse(
~setOnlineStatus=make_rawResponse_setOnlineStatus(
~user=make_rawResponse_setOnlineStatus_user(
~id=data.id,
~firstName=data.firstName,
~lastName=data.lastName,
~memberOf=[
~variables={onlineStatus: Idle},
~optimisticResponse={
setOnlineStatus: Some({
user: Some({
id: data.id,
firstName: data.firstName,
lastName: data.lastName,
memberOf: Some([
Some(
#User({
__typename: #User,
Expand All @@ -141,14 +141,11 @@ module Test = {
__isNode: #User,
}),
),
],
~onlineStatus=Idle,
(),
),
(),
),
(),
),
]),
onlineStatus: Some(Idle),
}),
}),
},
(),
)->RescriptRelay.Disposable.ignore
}}>
Expand All @@ -159,7 +156,7 @@ module Test = {
open MutationWithInlineFragment
commitMutation(
~environment,
~variables=makeVariables(~onlineStatus=Idle),
~variables={onlineStatus: Idle},
~onCompleted=(response, _) => {
setInlineStatus(_ => "completed")
switch response {
Expand All @@ -183,10 +180,7 @@ module Test = {
</button>
<button
onClick={_ => {
let _ = {
open Mutation
mutate(~variables=makeVariables(~onlineStatus=Idle), ())
}
mutate(~variables={onlineStatus: Idle}, ())->RescriptRelay.Disposable.ignore
}}>
{React.string(isMutating ? "Mutating..." : "Change online status via useMutation hook")}
</button>
Expand All @@ -196,25 +190,22 @@ module Test = {
open ComplexMutation
commitMutation(
~environment,
~variables=makeVariables(
~variables={
// The "mess" below is to try and provoke a test failure if
// recursive conversion would be broken.
~input=make_setOnlineStatusInput(
~onlineStatus=Idle,
~someJsonValue,
~recursed=make_recursiveSetOnlineStatusInput(
~someValue=100,
~setOnlineStatus=make_setOnlineStatusInput(
~onlineStatus=Online,
~someJsonValue,
~recursed=make_recursiveSetOnlineStatusInput(~someValue=100, ()),
(),
),
(),
),
(),
),
),
input: {
onlineStatus: Idle,
someJsonValue,
recursed: {
someValue: 100,
setOnlineStatus: {
onlineStatus: Online,
someJsonValue,
recursed: {someValue: 100},
},
},
},
},
(),
)
}
Expand All @@ -227,21 +218,18 @@ module Test = {
open Mutation
commitMutation(
~environment,
~variables=makeVariables(~onlineStatus=Idle),
~optimisticResponse=makeOptimisticResponse(
~setOnlineStatus=make_rawResponse_setOnlineStatus(
~user=make_rawResponse_setOnlineStatus_user(
~id=data.id,
~__id=data.id->RescriptRelay.makeDataId,
~onlineStatus=Idle,
~firstName=data.firstName,
~lastName=data.lastName,
(),
),
(),
),
(),
),
~variables={onlineStatus: Idle},
~optimisticResponse={
setOnlineStatus: Some({
user: Some({
id: data.id,
__id: Some(data.id->RescriptRelay.makeDataId),
onlineStatus: Some(Idle),
firstName: data.firstName,
lastName: data.lastName,
}),
}),
},
(),
)
}
Expand Down
12 changes: 6 additions & 6 deletions packages/rescript-relay/__tests__/Test_query.res
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ module Test = {
| _ => []
}

let query = Query.use(~variables={status: status}, ())
let query = Query.use(~variables={status: ?status}, ())
let users = collectUsers(query)

<div>
Expand Down Expand Up @@ -100,13 +100,13 @@ module Test = {
<button
onClick={_ =>
setQueryRefFromModule(_ => Some(
TestQuery_graphql.load(~environment, ~variables={status: Some(Idle)}, ()),
TestQuery_graphql.load(~environment, ~variables={status: Idle}, ()),
))}>
{React.string("Test preloaded from raw module")}
</button>
<button
onClick={_ => {
let queryRef = TestQuery_graphql.load(~environment, ~variables={status: Some(Idle)}, ())
let queryRef = TestQuery_graphql.load(~environment, ~variables={status: Idle}, ())

let _ = queryRef->TestQuery_graphql.queryRefToPromise->(Js.Promise.then_(res => {
switch res {
Expand All @@ -125,7 +125,7 @@ module Test = {
onClick={_ =>
Query.fetch(
~environment,
~variables={status: Some(Online)},
~variables={status: Online},
~onResult=x =>
switch x {
| Ok(res) => setFetchedResult(_ => Some(collectUsers(res)))
Expand All @@ -138,7 +138,7 @@ module Test = {
<button
onClick={_ => {
let _ =
Query.fetchPromised(~environment, ~variables={status: Some(Online)}, ())->(
Query.fetchPromised(~environment, ~variables={status: Online}, ())->(
Js.Promise.then_(res => {
setFetchedResult(_ => Some(collectUsers(res)))
Js.Promise.resolve()
Expand All @@ -147,7 +147,7 @@ module Test = {
}}>
{React.string("Test fetch promised")}
</button>
<button onClick={_ => loadQuery(~variables={status: Some(Idle)}, ())}>
<button onClick={_ => loadQuery(~variables={status: Idle}, ())}>
{React.string("Test query loader")}
</button>
{hasWaitedForPreload ? <div> {React.string("Has waited for preload")} </div> : React.null}
Expand Down
5 changes: 1 addition & 4 deletions packages/rescript-relay/__tests__/Test_queryInputObjects.res
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,7 @@ module Query = %relay(`
module Test = {
@react.component
let make = () => {
let data = Query.use(
~variables=Query.makeVariables(~input=Query.make_searchInput(~id=123, ~someOtherId=1.5, ())),
(),
)
let data = Query.use(~variables={input: {id: 123, someOtherId: 1.5}}, ())

<div>
{switch data.search {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ module UserDisplayer = {
module Test = {
@react.component
let make = () => {
let query = Query.use(~variables={userId: "user-1", friendsOnlineStatuses: Some([Online])}, ())
let query = Query.use(~variables={userId: "user-1", friendsOnlineStatuses: [Online]}, ())

switch query.node {
| Some(#User(user)) => <UserDisplayer queryRef=user.fragmentRefs />
Expand Down
Loading

0 comments on commit fd6b07a

Please sign in to comment.