@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,37 +0,0 @@
1
- import * as path from 'path';
2
- import type { Types } from '@graphql-codegen/plugin-helpers';
3
- import type { TypedPresetConfig } from './validatePresetConfig/index.js';
4
- import { preset } from './preset.js';
5
-
6
- export const defineConfig = (
7
- presetConfig: TypedPresetConfig = {},
8
- context: {
9
- baseOutputDir?: string;
10
- schema?: Types.ConfiguredOutput['schema'];
11
- hooks?: Types.ConfiguredOutput['hooks'];
12
- } = {}
13
- ): Pick<
14
- Types.ConfiguredOutput,
15
- 'preset' | 'presetConfig' | 'watchPattern' | 'schema' | 'hooks'
16
- > => {
17
- const { schema, baseOutputDir = '', hooks } = context;
18
-
19
- const mappersFileExtension =
20
- presetConfig.mappersFileExtension || '.mappers.ts';
21
-
22
- const watchPattern: string[] = [];
23
- const mapperWatchPattern = path.posix.join(
24
- baseOutputDir,
25
- '**',
26
- `*${mappersFileExtension}`
27
- );
28
- watchPattern.push(mapperWatchPattern);
29
-
30
- return {
31
- preset,
32
- presetConfig,
33
- watchPattern,
34
- schema,
35
- hooks,
36
- };
37
- };
@@ -1,185 +0,0 @@
1
- import { normalizeRelativePath } from '../utils/index.js';
2
- import type { GenerateResolverFilesContext } from './types.js';
3
-
4
- interface AddExternalResolverImportParams {
5
- moduleName: string;
6
- relativePathFromBaseToModule: string[];
7
- normalizedResolverName: string;
8
- /*
9
- * configImportSyntax has 2 forms
10
- * 1. relative import: <relativePath>#{default as AliasIdentifier|named_import (as AliasIdentifier)}
11
- * 2. absolute import: ~<absolutePath>#{default as AliasIdentifier|named_import (as AliasIdentifier)}
12
- */
13
- configImportSyntax: string;
14
- }
15
-
16
- /**
17
- * addExternalResolverImport
18
- *
19
- * External resolvers are resolvers that are not managed by server preset:
20
- * - unmanaged resolvers e.g. using config.externalResolvers or config.scalarsOverrides
21
- * - resolvers that come from an external module e.g. `graphql-scalars`
22
- *
23
- * 1. parse external resolvers (originally from ) import syntax
24
- * 2. dedupes any duplicated imports
25
- * 3. declares the which identifier name to use for GraphQL object or resolver in identifierUsages
26
- */
27
- export const addExternalResolverImport = (
28
- params: AddExternalResolverImportParams,
29
- {
30
- result,
31
- config: { emitLegacyCommonJSImports, importExtension },
32
- }: GenerateResolverFilesContext
33
- ): void => {
34
- const { importIdentifier, identifierUsage, moduleImport } =
35
- parseImportSyntax(params);
36
-
37
- let shouldPushIndentifierUsages = false;
38
- result.externalImports[moduleImport] =
39
- result.externalImports[moduleImport] ||
40
- ({
41
- moduleName: params.moduleName,
42
- relativePathFromBaseToModule: params.relativePathFromBaseToModule,
43
- importLineMeta: {
44
- isTypeImport: false,
45
- module: moduleImport,
46
- moduleType: 'preserve',
47
- namedImports: [],
48
- defaultImport: undefined,
49
- emitLegacyCommonJSImports,
50
- importExtension,
51
- },
52
- identifierUsages: [],
53
- } satisfies GenerateResolverFilesContext['result']['externalImports'][number]);
54
-
55
- const { importLineMeta, identifierUsages } =
56
- result.externalImports[moduleImport];
57
-
58
- switch (importIdentifier.__type) {
59
- case 'default':
60
- if (
61
- importLineMeta.defaultImport &&
62
- importLineMeta.defaultImport !== importIdentifier.defaultImport
63
- ) {
64
- throw new Error(
65
- `There can be only one default import from '${moduleImport}'. Current: ${importLineMeta.defaultImport}. New: ${importIdentifier.defaultImport}`
66
- );
67
- }
68
- importLineMeta.defaultImport = importIdentifier.defaultImport;
69
- shouldPushIndentifierUsages = true;
70
- break;
71
- case 'named': {
72
- const foundSameImport = importLineMeta.namedImports.find(
73
- (existingImport) =>
74
- typeof existingImport === 'string' &&
75
- existingImport === importIdentifier.namedImport
76
- );
77
- if (!foundSameImport) {
78
- importLineMeta.namedImports.push(importIdentifier.namedImport);
79
- shouldPushIndentifierUsages = true;
80
- }
81
- break;
82
- }
83
- case 'namedWithAlias': {
84
- const foundSameImport = importLineMeta.namedImports.find(
85
- (existingImport) =>
86
- typeof existingImport === 'object' &&
87
- existingImport.identifierName === importIdentifier.identifierName &&
88
- existingImport.propertyName === importIdentifier.propertyName
89
- );
90
- if (!foundSameImport) {
91
- importLineMeta.namedImports.push({
92
- propertyName: importIdentifier.propertyName,
93
- identifierName: importIdentifier.identifierName,
94
- });
95
- shouldPushIndentifierUsages = true;
96
- }
97
- break;
98
- }
99
- default:
100
- // importIdentifier is `never` unless new __type is added
101
- // i.e. this is here for typesafety
102
- return importIdentifier;
103
- }
104
-
105
- if (shouldPushIndentifierUsages) {
106
- identifierUsages.push(identifierUsage);
107
- }
108
- };
109
-
110
- const parseImportSyntax = ({
111
- configImportSyntax,
112
- normalizedResolverName,
113
- }: AddExternalResolverImportParams): {
114
- importIdentifier:
115
- | { __type: 'default'; defaultImport: string }
116
- | { __type: 'named'; namedImport: string }
117
- | {
118
- __type: 'namedWithAlias';
119
- propertyName: string;
120
- identifierName: string;
121
- };
122
- identifierUsage: { identifierName: string; normalizedResolverName: string };
123
- moduleImport: string;
124
- } => {
125
- const isAbsoluteImport = configImportSyntax[0] === '~';
126
-
127
- const importStringWithoutRelativity = isAbsoluteImport
128
- ? configImportSyntax.slice(1)
129
- : configImportSyntax;
130
-
131
- const [rawModuleName, importIdentifier] =
132
- importStringWithoutRelativity.split('#');
133
-
134
- const moduleImport = isAbsoluteImport
135
- ? rawModuleName
136
- : normalizeRelativePath(rawModuleName);
137
-
138
- if (importIdentifier.startsWith('default')) {
139
- if (!importIdentifier.startsWith('default as ')) {
140
- throw new Error(
141
- `Invalid import syntax. "${configImportSyntax}": Default import must include identifier name e.g. moduleName#default as Identifier`
142
- );
143
- }
144
- const [_, defaultImportIdentifier] = importIdentifier.split('default as ');
145
- return {
146
- importIdentifier: {
147
- __type: 'default',
148
- defaultImport: defaultImportIdentifier,
149
- },
150
- identifierUsage: {
151
- identifierName: defaultImportIdentifier,
152
- normalizedResolverName,
153
- },
154
- moduleImport,
155
- };
156
- }
157
-
158
- const namedImportParts = importIdentifier.split(' as ');
159
- if (namedImportParts.length === 1) {
160
- return {
161
- importIdentifier: {
162
- __type: 'named',
163
- namedImport: namedImportParts[0],
164
- },
165
- identifierUsage: {
166
- identifierName: namedImportParts[0],
167
- normalizedResolverName,
168
- },
169
- moduleImport,
170
- };
171
- }
172
-
173
- return {
174
- importIdentifier: {
175
- __type: 'namedWithAlias',
176
- propertyName: namedImportParts[0],
177
- identifierName: namedImportParts[1],
178
- },
179
- identifierUsage: {
180
- identifierName: namedImportParts[1],
181
- normalizedResolverName,
182
- },
183
- moduleImport,
184
- };
185
- };