-
Notifications
You must be signed in to change notification settings - Fork 103
/
apollo.ts
59 lines (56 loc) · 2.32 KB
/
apollo.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
/* eslint-disable */
import { Zeus, GraphQLTypes, InputType, ValueTypes, OperationOptions, ScalarDefinition } from './index';
import { gql, useMutation, useSubscription, useQuery, useLazyQuery } from '@apollo/client';
import type { MutationHookOptions, SubscriptionHookOptions, QueryHookOptions, LazyQueryHookOptions } from '@apollo/client';
export function useTypedMutation<Z extends ValueTypes[O], O extends "Mutation", SCLR extends ScalarDefinition>(
mutation: Z | ValueTypes[O],
options?:{
apolloOptions?: MutationHookOptions<InputType<GraphQLTypes[O], Z, SCLR>>,
operationOptions?: OperationOptions,
scalars?: SCLR
}
) {
return useMutation<InputType<GraphQLTypes[O], Z, SCLR>>(gql(Zeus("mutation",mutation, {
operationOptions: options?.operationOptions,
scalars: options?.scalars
})), options?.apolloOptions);
}
export function useTypedSubscription<Z extends ValueTypes[O], O extends "Subscription", SCLR extends ScalarDefinition>(
subscription: Z | ValueTypes[O],
options?:{
apolloOptions?: SubscriptionHookOptions<InputType<GraphQLTypes[O], Z, SCLR>>,
operationOptions?: OperationOptions,
scalars?: SCLR
}
) {
return useSubscription<InputType<GraphQLTypes[O], Z, SCLR>>(gql(Zeus("subscription",subscription, {
operationOptions: options?.operationOptions,
scalars: options?.scalars
})), options?.apolloOptions);
}
export function useTypedQuery<Z extends ValueTypes[O], O extends "Query", SCLR extends ScalarDefinition>(
query: Z | ValueTypes[O],
options?:{
apolloOptions?: QueryHookOptions<InputType<GraphQLTypes[O], Z, SCLR>>,
operationOptions?: OperationOptions,
scalars?: SCLR
}
) {
return useQuery<InputType<GraphQLTypes[O], Z, SCLR>>(gql(Zeus("query",query, {
operationOptions: options?.operationOptions,
scalars: options?.scalars
})), options?.apolloOptions);
}
export function useTypedLazyQuery<Z extends ValueTypes[O], O extends "Query", SCLR extends ScalarDefinition>(
LazyQuery: Z | ValueTypes[O],
options?:{
apolloOptions?: LazyQueryHookOptions<InputType<GraphQLTypes[O], Z, SCLR>>,
operationOptions?: OperationOptions,
scalars?: SCLR
}
) {
return useLazyQuery<InputType<GraphQLTypes[O], Z, SCLR>>(gql(Zeus("query",LazyQuery, {
operationOptions: options?.operationOptions,
scalars: options?.scalars
})), options?.apolloOptions);
}