-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathcodegen.ts
67 lines (63 loc) · 1.54 KB
/
codegen.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
60
61
62
63
64
65
66
67
import { CodegenConfig } from '@graphql-codegen/cli'
import type { Types } from '@graphql-codegen/plugin-helpers'
import { API_URL_DEV } from './src/constants'
const commonGenerateOptions: Types.ConfiguredOutput = {
config: {
reactQueryVersion: 5,
fetcher: {
func: '../client#fetcher',
isReactHook: false,
},
exposeDocument: true,
exposeFetcher: true,
exposeQueryKeys: true,
exposeMutationKeys: true,
addInfiniteQuery: true,
enumsAsTypes: true,
dedupeFragments: true,
documentMode: 'documentNode',
scalars: {
Date: 'Date',
JSON: 'Record<string, any>',
ID: 'string',
Void: 'void',
},
},
plugins: [
'typescript',
'@graphql-codegen/typescript-operations',
'@graphql-codegen/typescript-react-query',
'typescript-document-nodes',
],
}
const config: CodegenConfig = {
overwrite: true,
hooks: { afterAllFileWrite: ['prettier --write'] },
// Try local schema first, fall back to remote if needed
schema: {
[API_URL_DEV]: {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
},
},
ignoreNoDocuments: true,
documents: ['**/*.graphql'],
generates: {
'./src/generated/index.ts': {
config: {
...commonGenerateOptions.config,
},
plugins: commonGenerateOptions.plugins,
},
'./schema.graphql': {
plugins: ['schema-ast'],
config: {
includeDirectives: true,
},
},
},
watch: process.env.NODE_ENV === 'development',
}
export default config