@eddeee888/gcg-typescript-resolver-files 0.18.0 → 0.18.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/dist/defineConfig.d.ts +1 -1
  2. package/dist/defineConfig.js +8 -0
  3. package/package.json +7 -3
  4. package/CHANGELOG.md +0 -816
  5. package/DEVELOPMENT.md +0 -49
  6. package/dist/tsconfig.lib.tsbuildinfo +0 -1
  7. package/eslint.config.mjs +0 -22
  8. package/project.json +0 -8
  9. package/src/addVirtualTypesFileToTsMorphProject/addVirtualTypesFileToTsMorphProject.ts +0 -109
  10. package/src/addVirtualTypesFileToTsMorphProject/index.ts +0 -1
  11. package/src/defineConfig.spec.ts +0 -76
  12. package/src/defineConfig.ts +0 -37
  13. package/src/generateResolverFiles/addExternalResolverImport.ts +0 -185
  14. package/src/generateResolverFiles/addObjectTypeResolversPropertyAssignmentNodesIfNotImplemented.spec.ts +0 -1174
  15. package/src/generateResolverFiles/addObjectTypeResolversPropertyAssignmentNodesIfNotImplemented.ts +0 -144
  16. package/src/generateResolverFiles/addResolverMainFiles.ts +0 -343
  17. package/src/generateResolverFiles/ensureEnumTypeResolversAreGenerated.ts +0 -51
  18. package/src/generateResolverFiles/generateResolverFiles.ts +0 -148
  19. package/src/generateResolverFiles/getImportStatementWithExpectedNamedImport.spec.ts +0 -127
  20. package/src/generateResolverFiles/getImportStatementWithExpectedNamedImport.ts +0 -25
  21. package/src/generateResolverFiles/getVariableStatementWithExpectedIdentifier.spec.ts +0 -147
  22. package/src/generateResolverFiles/getVariableStatementWithExpectedIdentifier.ts +0 -34
  23. package/src/generateResolverFiles/handleGraphQLEnumType.ts +0 -100
  24. package/src/generateResolverFiles/handleGraphQLInterfaceType.ts +0 -70
  25. package/src/generateResolverFiles/handleGraphQLObjectType.ts +0 -171
  26. package/src/generateResolverFiles/handleGraphQLRootObjectTypeField.ts +0 -105
  27. package/src/generateResolverFiles/handleGraphQLScalarType.ts +0 -81
  28. package/src/generateResolverFiles/handleGraphQLUnionType.ts +0 -68
  29. package/src/generateResolverFiles/index.ts +0 -2
  30. package/src/generateResolverFiles/postProcessFiles.ts +0 -287
  31. package/src/generateResolverFiles/types.ts +0 -203
  32. package/src/generateResolverFiles/visitNamedType.ts +0 -66
  33. package/src/generateTypeDefsFiles/generateTypeDefsContent.ts +0 -15
  34. package/src/generateTypeDefsFiles/generateTypeDefsFiles.ts +0 -100
  35. package/src/generateTypeDefsFiles/index.ts +0 -1
  36. package/src/getGraphQLObjectTypeResolversToGenerate/getGraphQLObjectTypeResolversToGenerate.ts +0 -361
  37. package/src/getGraphQLObjectTypeResolversToGenerate/getNodePropertyMap.spec.ts +0 -115
  38. package/src/getGraphQLObjectTypeResolversToGenerate/getNodePropertyMap.ts +0 -88
  39. package/src/getGraphQLObjectTypeResolversToGenerate/index.ts +0 -1
  40. package/src/index.ts +0 -3
  41. package/src/normalizeAddConfigPath/index.ts +0 -1
  42. package/src/normalizeAddConfigPath/normalizeAddConfigPath.ts +0 -29
  43. package/src/parseGraphQLSchema/index.ts +0 -2
  44. package/src/parseGraphQLSchema/normalizeResolverName.ts +0 -28
  45. package/src/parseGraphQLSchema/parseGraphQLSchema.ts +0 -531
  46. package/src/parseGraphQLSchema/parseLocationForOutputDir.ts +0 -76
  47. package/src/parseSources/index.ts +0 -1
  48. package/src/parseSources/parseSources.ts +0 -83
  49. package/src/parseTypeMappers/collectTypeMappersFromSourceFile.spec.ts +0 -789
  50. package/src/parseTypeMappers/collectTypeMappersFromSourceFile.ts +0 -197
  51. package/src/parseTypeMappers/index.ts +0 -1
  52. package/src/parseTypeMappers/parseTypeMappers.ts +0 -75
  53. package/src/preset.ts +0 -317
  54. package/src/utils/cwd.ts +0 -8
  55. package/src/utils/fmt.ts +0 -16
  56. package/src/utils/index.ts +0 -12
  57. package/src/utils/isMatchResolverNamePattern.ts +0 -27
  58. package/src/utils/isNativeNamedType.ts +0 -21
  59. package/src/utils/isRootObjectType.ts +0 -8
  60. package/src/utils/isWhitelistedModule.spec.ts +0 -71
  61. package/src/utils/isWhitelistedModule.ts +0 -21
  62. package/src/utils/logger.ts +0 -14
  63. package/src/utils/normalizeImportExtension.spec.ts +0 -42
  64. package/src/utils/normalizeImportExtension.ts +0 -16
  65. package/src/utils/normalizeRelativePath.ts +0 -6
  66. package/src/utils/parseLocationForWhitelistedModule.spec.ts +0 -130
  67. package/src/utils/parseLocationForWhitelistedModule.ts +0 -38
  68. package/src/utils/printImportLine.spec.ts +0 -150
  69. package/src/utils/printImportLine.ts +0 -78
  70. package/src/utils/relativeModulePath.ts +0 -7
  71. package/src/validateAndMergeParsedConfigs/index.ts +0 -1
  72. package/src/validateAndMergeParsedConfigs/validateAndMergeParsedConfigs.spec.ts +0 -211
  73. package/src/validateAndMergeParsedConfigs/validateAndMergeParsedConfigs.ts +0 -92
  74. package/src/validatePresetConfig/index.ts +0 -1
  75. package/src/validatePresetConfig/validatePresetConfig.spec.ts +0 -706
  76. package/src/validatePresetConfig/validatePresetConfig.ts +0 -571
  77. package/tsconfig.json +0 -14
  78. package/tsconfig.lib.json +0 -18
  79. package/tsconfig.spec.json +0 -20
  80. package/vite.config.ts +0 -24
@@ -1,211 +0,0 @@
1
- import { validateAndMergeParsedConfigs } from './validateAndMergeParsedConfigs';
2
-
3
- describe('validateAndMergeParsedConfigs', () => {
4
- it('merges configs correctly', () => {
5
- const result = validateAndMergeParsedConfigs({
6
- unmanagedNonScalarResolvers: {
7
- User: 'userResolvers#User as UserResolver',
8
- },
9
- parsedGraphQLSchemaMeta: {
10
- userDefinedSchemaTypeMap: {
11
- query: {},
12
- mutation: {},
13
- subscription: {},
14
- interface: {},
15
- union: {},
16
- enum: {},
17
- object: {
18
- User: {
19
- 'src/schema/user': {
20
- moduleName: 'user',
21
- schemaType: 'User',
22
- normalizedResolverName: {
23
- base: 'User',
24
- withModule: 'user.User',
25
- },
26
- fieldsToPick: [],
27
- relativePathFromBaseToModule: ['user'],
28
- relativePathToResolverTypesFile: '../types.generated.ts',
29
- resolverFile: {
30
- name: 'User',
31
- path: 'user/User.ts',
32
- isOnFilesystem: false,
33
- },
34
- typeNamedImport: () => 'User',
35
- typeString: () => 'UserResolver',
36
- },
37
- },
38
- },
39
- scalar: {
40
- DateTime: {
41
- moduleName: 'base',
42
- schemaType: 'DateTime',
43
- typeString: () => 'DateTimeResolver',
44
- typeNamedImport: () => 'DateTimeResolver',
45
- resolverFile: {
46
- name: 'DateTime',
47
- path: 'base/DateTime.ts',
48
- isOnFilesystem: false,
49
- },
50
- relativePathToResolverTypesFile: '../types.generated.ts',
51
- relativePathFromBaseToModule: ['./DateTime'],
52
- normalizedResolverName: {
53
- base: 'DateTime',
54
- withModule: 'base.DateTime',
55
- },
56
- },
57
- },
58
- },
59
- pluginsConfig: {
60
- defaultTypeMappers: {
61
- User: './user/schema.mappers#UserMapper',
62
- },
63
- defaultScalarTypesMap: {
64
- DateTime: 'string',
65
- },
66
- scalarsModuleResolvers: {
67
- DateTime: '~graphql-scalars#DateTimeResolver',
68
- },
69
- unmanagedScalarResolvers: {},
70
- },
71
- },
72
- });
73
-
74
- expect(result).toEqual({
75
- unmanagedResolvers: {
76
- User: 'userResolvers#User as UserResolver',
77
- DateTime: '~graphql-scalars#DateTimeResolver',
78
- },
79
- scalarTypes: {
80
- DateTime: 'string',
81
- },
82
- typeMappers: {
83
- User: './user/schema.mappers#UserMapper',
84
- },
85
- userDefinedSchemaTypeMap: {
86
- query: {},
87
- mutation: {},
88
- subscription: {},
89
- interface: {},
90
- union: {},
91
- enum: {},
92
- object: {
93
- User: {
94
- 'src/schema/user': {
95
- moduleName: 'user',
96
- schemaType: 'User',
97
- normalizedResolverName: {
98
- base: 'User',
99
- withModule: 'user.User',
100
- },
101
- fieldsToPick: [],
102
- relativePathFromBaseToModule: ['user'],
103
- relativePathToResolverTypesFile: '../types.generated.ts',
104
- resolverFile: {
105
- name: 'User',
106
- path: 'user/User.ts',
107
- isOnFilesystem: false,
108
- },
109
- typeNamedImport: expect.any(Function),
110
- typeString: expect.any(Function),
111
- },
112
- },
113
- },
114
- scalar: {
115
- DateTime: {
116
- moduleName: 'base',
117
- schemaType: 'DateTime',
118
- typeString: expect.any(Function),
119
- typeNamedImport: expect.any(Function),
120
- resolverFile: {
121
- name: 'DateTime',
122
- path: 'base/DateTime.ts',
123
- isOnFilesystem: false,
124
- },
125
- relativePathToResolverTypesFile: '../types.generated.ts',
126
- relativePathFromBaseToModule: ['./DateTime'],
127
- normalizedResolverName: {
128
- base: 'DateTime',
129
- withModule: 'base.DateTime',
130
- },
131
- },
132
- },
133
- },
134
- });
135
- });
136
-
137
- it('throws error if input externalResolvers is used for scalars', () => {
138
- expect(() =>
139
- validateAndMergeParsedConfigs({
140
- unmanagedNonScalarResolvers: {
141
- DateTime: '~graphql-scalars#DateTimeResolver',
142
- },
143
- parsedGraphQLSchemaMeta: {
144
- userDefinedSchemaTypeMap: {
145
- query: {},
146
- mutation: {},
147
- subscription: {},
148
- interface: {},
149
- union: {},
150
- enum: {},
151
- object: {
152
- User: {
153
- 'src/schema/user': {
154
- moduleName: 'user',
155
- schemaType: 'User',
156
- normalizedResolverName: {
157
- base: 'User',
158
- withModule: 'user.User',
159
- },
160
- fieldsToPick: [],
161
- relativePathFromBaseToModule: ['user'],
162
- relativePathToResolverTypesFile: '../types.generated.ts',
163
- resolverFile: {
164
- name: 'User',
165
- path: 'user/User.ts',
166
- isOnFilesystem: false,
167
- },
168
- typeNamedImport: () => 'User',
169
- typeString: () => 'UserResolver',
170
- },
171
- },
172
- },
173
- scalar: {
174
- DateTime: {
175
- moduleName: 'base',
176
- schemaType: 'DateTime',
177
- typeString: () => 'DateTimeResolver',
178
- typeNamedImport: () => 'DateTimeResolver',
179
- resolverFile: {
180
- name: 'DateTime',
181
- path: 'base/DateTime.ts',
182
- isOnFilesystem: false,
183
- },
184
- relativePathToResolverTypesFile: '../types.generated.ts',
185
- relativePathFromBaseToModule: ['./DateTime'],
186
- normalizedResolverName: {
187
- base: 'DateTime',
188
- withModule: 'base.DateTime',
189
- },
190
- },
191
- },
192
- },
193
- pluginsConfig: {
194
- defaultTypeMappers: {
195
- User: './user/schema.mappers#UserMapper',
196
- },
197
- defaultScalarTypesMap: {
198
- DateTime: 'string',
199
- },
200
- scalarsModuleResolvers: {
201
- DateTime: '~graphql-scalars#DateTimeResolver',
202
- },
203
- unmanagedScalarResolvers: {},
204
- },
205
- },
206
- })
207
- ).toThrow(
208
- 'Validation - Scalar "DateTime" found in presetConfig.externalResolvers. Use presetConfig.scalarsOverrides to override scalar implementation and type. Remove "DateTime" from presetConfig.externalResolvers.'
209
- );
210
- });
211
- });
@@ -1,92 +0,0 @@
1
- import type { ParsedGraphQLSchemaMeta } from '../parseGraphQLSchema/index.js';
2
- import type {
3
- ParsedPresetConfig,
4
- ScalarsOverridesType,
5
- } from '../validatePresetConfig/index.js';
6
- import { fmt } from '../utils/index.js';
7
-
8
- interface MergedConfig {
9
- userDefinedSchemaTypeMap: ParsedGraphQLSchemaMeta['userDefinedSchemaTypeMap'];
10
- scalarTypes: Record<string, ScalarsOverridesType>;
11
- typeMappers: Record<string, string>;
12
- /**
13
- * Resolvers users explicitly wants to control i.e. unmanaged by server preset so no static analysis is run on these resolvers
14
- * This is set by a few options:
15
- * - config.externalResolvers: for non-scalar types
16
- * - config.scalarsOverrides: for scalar types
17
- * - external resolvers e.g. from `graphql-scalars` module
18
- **/
19
- unmanagedResolvers: Record<string, string>;
20
- }
21
-
22
- /**
23
- * validateAndMergeParsedConfigs is used to make sure all parsed configs do not incorrectly override each other.
24
- * Use this to ensure there's only one way of doing something. e.g.
25
- * - scalarsOverrides must be used over externalResolvers to override scalars
26
- */
27
- export const validateAndMergeParsedConfigs = ({
28
- unmanagedNonScalarResolvers,
29
- parsedGraphQLSchemaMeta: {
30
- userDefinedSchemaTypeMap,
31
- pluginsConfig: {
32
- scalarsModuleResolvers,
33
- unmanagedScalarResolvers,
34
- defaultScalarTypesMap,
35
- defaultTypeMappers,
36
- },
37
- },
38
- }: {
39
- unmanagedNonScalarResolvers: ParsedPresetConfig['externalResolvers'];
40
- parsedGraphQLSchemaMeta: ParsedGraphQLSchemaMeta;
41
- }): MergedConfig => {
42
- Object.keys(scalarsModuleResolvers).forEach((schemaType) => {
43
- if (
44
- // If the scalar is defined on the filesystem, it means user wants to use their custom definition.
45
- // This means we should use it, instead of importing it from scalar module
46
- userDefinedSchemaTypeMap.scalar[schemaType]?.resolverFile.isOnFilesystem
47
- ) {
48
- delete scalarsModuleResolvers[schemaType];
49
- }
50
- });
51
-
52
- // By default, codegen doesn't generate types for enums
53
- // This is great for the default codegen setup but it's not great for server preset - where we need to be able to import
54
- // generated resolver types to fill in content for resolver files without needing to manually set up mappers/enumValues
55
- // `schemaEnumTypeMappers` is the schema mappers for enums, which can be overriden by user's provided mapper types
56
- const schemaEnumTypeMappers = Object.entries(
57
- userDefinedSchemaTypeMap.enum
58
- ).reduce<Record<string, string>>(
59
- (result, [enumTypename, { allowedValues }]) => {
60
- result[enumTypename] = allowedValues.map((v) => `'${v}'`).join(' | ');
61
- return result;
62
- },
63
- {}
64
- );
65
-
66
- Object.keys(unmanagedNonScalarResolvers).forEach((schemaType) => {
67
- if (userDefinedSchemaTypeMap.scalar[schemaType]) {
68
- throw new Error(
69
- fmt.error(
70
- `Scalar "${schemaType}" found in presetConfig.externalResolvers. Use presetConfig.scalarsOverrides to override scalar implementation and type. Remove "${schemaType}" from presetConfig.externalResolvers.`,
71
- 'Validation'
72
- )
73
- );
74
- }
75
- });
76
-
77
- return {
78
- userDefinedSchemaTypeMap,
79
- scalarTypes: {
80
- ...defaultScalarTypesMap,
81
- },
82
- typeMappers: {
83
- ...schemaEnumTypeMappers,
84
- ...defaultTypeMappers,
85
- },
86
- unmanagedResolvers: {
87
- ...unmanagedNonScalarResolvers,
88
- ...scalarsModuleResolvers,
89
- ...unmanagedScalarResolvers,
90
- },
91
- };
92
- };
@@ -1 +0,0 @@
1
- export * from './validatePresetConfig.js';