Skip to content

Commit 5851076

Browse files
committed
✨ Added options to react-query plugin
1 parent a727e1c commit 5851076

File tree

9 files changed

+649
-602
lines changed

9 files changed

+649
-602
lines changed
Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/* eslint-disable */
22

3-
import { ValueTypes, GraphQLTypes, InputType, Chain, OperationOptions } from './index';
3+
import { ValueTypes, GraphQLTypes, InputType, Chain, OperationOptions, chainOptions } from './index';
44
import { useMutation, useQuery } from 'react-query';
55
import type { UseMutationOptions, UseQueryOptions } from 'react-query';
66

@@ -10,16 +10,18 @@ export function useTypedMutation<O extends "mutation_root", TData extends ValueT
1010
mutation: TData | ValueTypes[O],
1111
options?: Omit<UseMutationOptions<TResult>, 'mutationKey' | 'mutationFn'>,
1212
zeusOptions?: OperationOptions,
13-
host = ""
13+
host = "",
14+
hostOptions: chainOptions[1] = {},
1415
) {
15-
return useMutation<TResult>(mutationKey, () => Chain(host)("mutation")(mutation, zeusOptions) as Promise<TResult>, options);
16+
return useMutation<TResult>(mutationKey, () => Chain(host, hostOptions)("mutation")(mutation, zeusOptions) as Promise<TResult>, options);
1617
}
1718
export function useTypedQuery<O extends "query_root", TData extends ValueTypes[O], TResult = InputType<GraphQLTypes[O], TData>>(
1819
queryKey: string,
1920
query: TData | ValueTypes[O],
2021
options?: Omit<UseQueryOptions<TResult>, 'queryKey' | 'queryFn'>,
2122
zeusOptions?: OperationOptions,
22-
host = ""
23+
host = "",
24+
hostOptions: chainOptions[1] = {},
2325
) {
24-
return useQuery<TResult>(queryKey, () => Chain(host)("query")(query, zeusOptions) as Promise<TResult>, options);
26+
return useQuery<TResult>(queryKey, () => Chain(host, hostOptions)("query")(query, zeusOptions) as Promise<TResult>, options);
2527
}
Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,24 @@
11
/* eslint-disable */
22

33
import { Zeus, GraphQLTypes, InputType, ValueTypes } from './index';
4-
import { gql, useQuery, useLazyQuery, useSubscription, useMutation } from '@apollo/client';
5-
import type { QueryHookOptions, LazyQueryHookOptions, SubscriptionHookOptions, MutationHookOptions } from '@apollo/client';
4+
import { gql, useMutation, useSubscription, useQuery, useLazyQuery } from '@apollo/client';
5+
import type { MutationHookOptions, SubscriptionHookOptions, QueryHookOptions, LazyQueryHookOptions } from '@apollo/client';
66

77

8+
export function useTypedMutation<Z extends ValueTypes[O], O extends "Mutation">(
9+
mutation: Z | ValueTypes[O],
10+
options?: MutationHookOptions<InputType<GraphQLTypes[O], Z>>,
11+
operationName?: string,
12+
) {
13+
return useMutation<InputType<GraphQLTypes[O], Z>>(gql(Zeus("mutation",mutation, operationName)), options);
14+
}
15+
export function useTypedSubscription<Z extends ValueTypes[O], O extends "Subscription">(
16+
subscription: Z | ValueTypes[O],
17+
options?: SubscriptionHookOptions<InputType<GraphQLTypes[O], Z>>,
18+
operationName?: string,
19+
) {
20+
return useSubscription<InputType<GraphQLTypes[O], Z>>(gql(Zeus("subscription",subscription, operationName)), options);
21+
}
822
export function useTypedQuery<Z extends ValueTypes[O], O extends "Query">(
923
query: Z | ValueTypes[O],
1024
options?: QueryHookOptions<InputType<GraphQLTypes[O], Z>>,
@@ -19,17 +33,3 @@ export function useTypedLazyQuery<Z extends ValueTypes[O], O extends "Query">(
1933
) {
2034
return useLazyQuery<InputType<GraphQLTypes[O], Z>>(gql(Zeus("query",LazyQuery, operationName)), options);
2135
}
22-
export function useTypedSubscription<Z extends ValueTypes[O], O extends "Subscription">(
23-
subscription: Z | ValueTypes[O],
24-
options?: SubscriptionHookOptions<InputType<GraphQLTypes[O], Z>>,
25-
operationName?: string,
26-
) {
27-
return useSubscription<InputType<GraphQLTypes[O], Z>>(gql(Zeus("subscription",subscription, operationName)), options);
28-
}
29-
export function useTypedMutation<Z extends ValueTypes[O], O extends "Mutation">(
30-
mutation: Z | ValueTypes[O],
31-
options?: MutationHookOptions<InputType<GraphQLTypes[O], Z>>,
32-
operationName?: string,
33-
) {
34-
return useMutation<InputType<GraphQLTypes[O], Z>>(gql(Zeus("mutation",mutation, operationName)), options);
35-
}

examples/typescript-node/src/zeus/const.ts

Lines changed: 41 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,6 @@
11
/* eslint-disable */
22

33
export const AllTypesProps: Record<string,any> = {
4-
Query:{
5-
cardById:{
6-
cardId:{
7-
type:"String",
8-
array:false,
9-
arrayRequired:false,
10-
required:false
11-
}
12-
}
13-
},
144
Card:{
155
attack:{
166
cardID:{
@@ -21,6 +11,7 @@ export const AllTypesProps: Record<string,any> = {
2111
}
2212
}
2313
},
14+
SpecialSkills: "enum",
2415
Mutation:{
2516
addCard:{
2617
card:{
@@ -31,14 +22,7 @@ export const AllTypesProps: Record<string,any> = {
3122
}
3223
}
3324
},
34-
SpecialSkills: "enum",
3525
createCard:{
36-
Attack:{
37-
type:"Int",
38-
array:false,
39-
arrayRequired:false,
40-
required:true
41-
},
4226
Defense:{
4327
type:"Int",
4428
array:false,
@@ -68,27 +52,27 @@ export const AllTypesProps: Record<string,any> = {
6852
array:false,
6953
arrayRequired:false,
7054
required:false
55+
},
56+
Attack:{
57+
type:"Int",
58+
array:false,
59+
arrayRequired:false,
60+
required:true
61+
}
62+
},
63+
Query:{
64+
cardById:{
65+
cardId:{
66+
type:"String",
67+
array:false,
68+
arrayRequired:false,
69+
required:false
70+
}
7171
}
7272
}
7373
}
7474

7575
export const ReturnTypes: Record<string,any> = {
76-
ChangeCard:{
77-
"...on SpecialCard":"SpecialCard",
78-
"...on EffectCard":"EffectCard"
79-
},
80-
CardStack:{
81-
cards:"Card",
82-
name:"String"
83-
},
84-
Query:{
85-
cardById:"Card",
86-
drawCard:"Card",
87-
drawChangeCard:"ChangeCard",
88-
listCards:"Card",
89-
myStacks:"CardStack",
90-
nameables:"Nameable"
91-
},
9276
Card:{
9377
Attack:"Int",
9478
Children:"Int",
@@ -106,22 +90,38 @@ export const ReturnTypes: Record<string,any> = {
10690
key:"String",
10791
region:"String"
10892
},
109-
Subscription:{
110-
deck:"Card"
93+
SpecialCard:{
94+
effect:"String",
95+
name:"String"
96+
},
97+
Mutation:{
98+
addCard:"Card"
11199
},
112100
Nameable:{
113-
"...on CardStack": "CardStack",
114101
"...on Card": "Card",
115102
"...on SpecialCard": "SpecialCard",
103+
"...on CardStack": "CardStack",
116104
"...on EffectCard": "EffectCard",
117105
name:"String"
118106
},
119-
SpecialCard:{
120-
effect:"String",
121-
name:"String"
107+
ChangeCard:{
108+
"...on SpecialCard":"SpecialCard",
109+
"...on EffectCard":"EffectCard"
122110
},
123-
Mutation:{
124-
addCard:"Card"
111+
Subscription:{
112+
deck:"Card"
113+
},
114+
Query:{
115+
cardById:"Card",
116+
drawCard:"Card",
117+
drawChangeCard:"ChangeCard",
118+
listCards:"Card",
119+
myStacks:"CardStack",
120+
nameables:"Nameable"
121+
},
122+
CardStack:{
123+
cards:"Card",
124+
name:"String"
125125
},
126126
EffectCard:{
127127
effectSize:"Float",

0 commit comments

Comments
 (0)