-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathcodegen.ts
More file actions
66 lines (63 loc) · 1.72 KB
/
codegen.ts
File metadata and controls
66 lines (63 loc) · 1.72 KB
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
import dotenv from 'dotenv';
import type { CodegenConfig } from '@graphql-codegen/cli';
dotenv.config();
dotenv.config({ path: '.env.local', override: true });
const apiUrl = process.env.API_URL ?? 'https://api.stage.mpdx.org/graphql';
const schema = [apiUrl, './pages/api/Schema/**/*.graphql'];
export default {
generates: {
'./src/graphql/types.generated.ts': {
schema,
plugins: ['typescript'],
config: {
scalars: {
ISO8601Date: 'string',
ISO8601DateTime: 'string',
},
},
},
'./': {
schema,
documents: '**/*.graphql',
preset: 'near-operation-file',
presetConfig: {
baseTypesPath: 'src/graphql/types.generated.ts',
},
plugins: ['typescript-operations', 'typescript-react-apollo'],
config: {
preResolveTypes: false,
},
},
'./src/graphql/schema.graphql': {
schema,
plugins: ['schema-ast'],
},
'./src/graphql/possibleTypes.generated.ts': {
schema,
plugins: ['fragment-matcher'],
},
'./pages/api/graphql-rest.page.generated.ts': {
schema,
plugins: ['typescript', 'typescript-resolvers'],
config: {
useIndexSignature: true,
contextType: './graphql-rest.page#Context',
scalars: {
ISO8601Date: 'string',
ISO8601DateTime: 'string',
},
},
},
'./src/graphql/rootFields.generated.ts': {
// Don't include REST API schema because we only want the Rails schema
schema: apiUrl,
plugins: ['./extractRootFields.js'],
},
},
hooks: {
afterAllFileWrite: [
'prettier --write --ignore-path=""',
'node deleteStaleFiles.mjs',
],
},
} satisfies CodegenConfig;