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

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 (78) hide show
  1. package/package.json +6 -2
  2. package/CHANGELOG.md +0 -816
  3. package/DEVELOPMENT.md +0 -49
  4. package/dist/tsconfig.lib.tsbuildinfo +0 -1
  5. package/eslint.config.mjs +0 -22
  6. package/project.json +0 -8
  7. package/src/addVirtualTypesFileToTsMorphProject/addVirtualTypesFileToTsMorphProject.ts +0 -109
  8. package/src/addVirtualTypesFileToTsMorphProject/index.ts +0 -1
  9. package/src/defineConfig.spec.ts +0 -76
  10. package/src/defineConfig.ts +0 -37
  11. package/src/generateResolverFiles/addExternalResolverImport.ts +0 -185
  12. package/src/generateResolverFiles/addObjectTypeResolversPropertyAssignmentNodesIfNotImplemented.spec.ts +0 -1174
  13. package/src/generateResolverFiles/addObjectTypeResolversPropertyAssignmentNodesIfNotImplemented.ts +0 -144
  14. package/src/generateResolverFiles/addResolverMainFiles.ts +0 -343
  15. package/src/generateResolverFiles/ensureEnumTypeResolversAreGenerated.ts +0 -51
  16. package/src/generateResolverFiles/generateResolverFiles.ts +0 -148
  17. package/src/generateResolverFiles/getImportStatementWithExpectedNamedImport.spec.ts +0 -127
  18. package/src/generateResolverFiles/getImportStatementWithExpectedNamedImport.ts +0 -25
  19. package/src/generateResolverFiles/getVariableStatementWithExpectedIdentifier.spec.ts +0 -147
  20. package/src/generateResolverFiles/getVariableStatementWithExpectedIdentifier.ts +0 -34
  21. package/src/generateResolverFiles/handleGraphQLEnumType.ts +0 -100
  22. package/src/generateResolverFiles/handleGraphQLInterfaceType.ts +0 -70
  23. package/src/generateResolverFiles/handleGraphQLObjectType.ts +0 -171
  24. package/src/generateResolverFiles/handleGraphQLRootObjectTypeField.ts +0 -105
  25. package/src/generateResolverFiles/handleGraphQLScalarType.ts +0 -81
  26. package/src/generateResolverFiles/handleGraphQLUnionType.ts +0 -68
  27. package/src/generateResolverFiles/index.ts +0 -2
  28. package/src/generateResolverFiles/postProcessFiles.ts +0 -287
  29. package/src/generateResolverFiles/types.ts +0 -203
  30. package/src/generateResolverFiles/visitNamedType.ts +0 -66
  31. package/src/generateTypeDefsFiles/generateTypeDefsContent.ts +0 -15
  32. package/src/generateTypeDefsFiles/generateTypeDefsFiles.ts +0 -100
  33. package/src/generateTypeDefsFiles/index.ts +0 -1
  34. package/src/getGraphQLObjectTypeResolversToGenerate/getGraphQLObjectTypeResolversToGenerate.ts +0 -361
  35. package/src/getGraphQLObjectTypeResolversToGenerate/getNodePropertyMap.spec.ts +0 -115
  36. package/src/getGraphQLObjectTypeResolversToGenerate/getNodePropertyMap.ts +0 -88
  37. package/src/getGraphQLObjectTypeResolversToGenerate/index.ts +0 -1
  38. package/src/index.ts +0 -3
  39. package/src/normalizeAddConfigPath/index.ts +0 -1
  40. package/src/normalizeAddConfigPath/normalizeAddConfigPath.ts +0 -29
  41. package/src/parseGraphQLSchema/index.ts +0 -2
  42. package/src/parseGraphQLSchema/normalizeResolverName.ts +0 -28
  43. package/src/parseGraphQLSchema/parseGraphQLSchema.ts +0 -531
  44. package/src/parseGraphQLSchema/parseLocationForOutputDir.ts +0 -76
  45. package/src/parseSources/index.ts +0 -1
  46. package/src/parseSources/parseSources.ts +0 -83
  47. package/src/parseTypeMappers/collectTypeMappersFromSourceFile.spec.ts +0 -789
  48. package/src/parseTypeMappers/collectTypeMappersFromSourceFile.ts +0 -197
  49. package/src/parseTypeMappers/index.ts +0 -1
  50. package/src/parseTypeMappers/parseTypeMappers.ts +0 -75
  51. package/src/preset.ts +0 -317
  52. package/src/utils/cwd.ts +0 -8
  53. package/src/utils/fmt.ts +0 -16
  54. package/src/utils/index.ts +0 -12
  55. package/src/utils/isMatchResolverNamePattern.ts +0 -27
  56. package/src/utils/isNativeNamedType.ts +0 -21
  57. package/src/utils/isRootObjectType.ts +0 -8
  58. package/src/utils/isWhitelistedModule.spec.ts +0 -71
  59. package/src/utils/isWhitelistedModule.ts +0 -21
  60. package/src/utils/logger.ts +0 -14
  61. package/src/utils/normalizeImportExtension.spec.ts +0 -42
  62. package/src/utils/normalizeImportExtension.ts +0 -16
  63. package/src/utils/normalizeRelativePath.ts +0 -6
  64. package/src/utils/parseLocationForWhitelistedModule.spec.ts +0 -130
  65. package/src/utils/parseLocationForWhitelistedModule.ts +0 -38
  66. package/src/utils/printImportLine.spec.ts +0 -150
  67. package/src/utils/printImportLine.ts +0 -78
  68. package/src/utils/relativeModulePath.ts +0 -7
  69. package/src/validateAndMergeParsedConfigs/index.ts +0 -1
  70. package/src/validateAndMergeParsedConfigs/validateAndMergeParsedConfigs.spec.ts +0 -211
  71. package/src/validateAndMergeParsedConfigs/validateAndMergeParsedConfigs.ts +0 -92
  72. package/src/validatePresetConfig/index.ts +0 -1
  73. package/src/validatePresetConfig/validatePresetConfig.spec.ts +0 -706
  74. package/src/validatePresetConfig/validatePresetConfig.ts +0 -571
  75. package/tsconfig.json +0 -14
  76. package/tsconfig.lib.json +0 -18
  77. package/tsconfig.spec.json +0 -20
  78. 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';