@eddeee888/gcg-typescript-resolver-files 0.17.0 → 0.18.0
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.
- package/CHANGELOG.md +816 -0
- package/DEVELOPMENT.md +49 -0
- package/LICENSE +21 -0
- package/README.md +3 -3
- package/{src → dist}/addVirtualTypesFileToTsMorphProject/addVirtualTypesFileToTsMorphProject.d.ts +2 -2
- package/{src → dist}/addVirtualTypesFileToTsMorphProject/addVirtualTypesFileToTsMorphProject.js +11 -17
- package/dist/addVirtualTypesFileToTsMorphProject/index.d.ts +1 -0
- package/dist/addVirtualTypesFileToTsMorphProject/index.js +1 -0
- package/{src → dist}/defineConfig.d.ts +1 -1
- package/{src → dist}/defineConfig.js +4 -10
- package/{src → dist}/generateResolverFiles/addExternalResolverImport.d.ts +1 -1
- package/{src → dist}/generateResolverFiles/addExternalResolverImport.js +3 -8
- package/{src → dist}/generateResolverFiles/addObjectTypeResolversPropertyAssignmentNodesIfNotImplemented.d.ts +1 -1
- package/{src → dist}/generateResolverFiles/addObjectTypeResolversPropertyAssignmentNodesIfNotImplemented.js +9 -14
- package/{src → dist}/generateResolverFiles/addResolverMainFiles.d.ts +1 -1
- package/{src → dist}/generateResolverFiles/addResolverMainFiles.js +11 -17
- package/{src → dist}/generateResolverFiles/ensureEnumTypeResolversAreGenerated.d.ts +1 -1
- package/{src → dist}/generateResolverFiles/ensureEnumTypeResolversAreGenerated.js +6 -11
- package/{src → dist}/generateResolverFiles/generateResolverFiles.d.ts +1 -1
- package/dist/generateResolverFiles/generateResolverFiles.js +87 -0
- package/{src → dist}/generateResolverFiles/getImportStatementWithExpectedNamedImport.d.ts +1 -1
- package/dist/generateResolverFiles/getImportStatementWithExpectedNamedImport.js +14 -0
- package/{src → dist}/generateResolverFiles/getVariableStatementWithExpectedIdentifier.d.ts +1 -1
- package/{src → dist}/generateResolverFiles/getVariableStatementWithExpectedIdentifier.js +1 -6
- package/{src → dist}/generateResolverFiles/handleGraphQLEnumType.d.ts +1 -1
- package/{src → dist}/generateResolverFiles/handleGraphQLEnumType.js +6 -11
- package/{src → dist}/generateResolverFiles/handleGraphQLInterfaceType.d.ts +1 -1
- package/{src → dist}/generateResolverFiles/handleGraphQLInterfaceType.js +6 -11
- package/{src → dist}/generateResolverFiles/handleGraphQLObjectType.d.ts +1 -1
- package/{src → dist}/generateResolverFiles/handleGraphQLObjectType.js +8 -14
- package/dist/generateResolverFiles/handleGraphQLRootObjectTypeField.d.ts +3 -0
- package/{src → dist}/generateResolverFiles/handleGraphQLRootObjectTypeField.js +8 -13
- package/{src → dist}/generateResolverFiles/handleGraphQLScalarType.d.ts +1 -1
- package/{src → dist}/generateResolverFiles/handleGraphQLScalarType.js +6 -11
- package/{src → dist}/generateResolverFiles/handleGraphQLUnionType.d.ts +1 -1
- package/{src → dist}/generateResolverFiles/handleGraphQLUnionType.js +5 -10
- package/dist/generateResolverFiles/index.d.ts +2 -0
- package/dist/generateResolverFiles/index.js +1 -0
- package/{src → dist}/generateResolverFiles/postProcessFiles.d.ts +1 -1
- package/{src → dist}/generateResolverFiles/postProcessFiles.js +24 -26
- package/{src → dist}/generateResolverFiles/types.d.ts +6 -6
- package/dist/generateResolverFiles/types.js +1 -0
- package/{src → dist}/generateResolverFiles/visitNamedType.d.ts +2 -2
- package/{src → dist}/generateResolverFiles/visitNamedType.js +3 -8
- package/dist/generateTypeDefsFiles/generateTypeDefsContent.js +7 -0
- package/{src → dist}/generateTypeDefsFiles/generateTypeDefsFiles.d.ts +3 -3
- package/{src → dist}/generateTypeDefsFiles/generateTypeDefsFiles.js +7 -13
- package/dist/generateTypeDefsFiles/index.d.ts +1 -0
- package/dist/generateTypeDefsFiles/index.js +1 -0
- package/{src → dist}/getGraphQLObjectTypeResolversToGenerate/getGraphQLObjectTypeResolversToGenerate.d.ts +3 -3
- package/{src → dist}/getGraphQLObjectTypeResolversToGenerate/getGraphQLObjectTypeResolversToGenerate.js +17 -22
- package/{src → dist}/getGraphQLObjectTypeResolversToGenerate/getNodePropertyMap.js +5 -10
- package/dist/getGraphQLObjectTypeResolversToGenerate/index.d.ts +1 -0
- package/dist/getGraphQLObjectTypeResolversToGenerate/index.js +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +3 -0
- package/dist/normalizeAddConfigPath/index.d.ts +1 -0
- package/dist/normalizeAddConfigPath/index.js +1 -0
- package/{src → dist}/normalizeAddConfigPath/normalizeAddConfigPath.d.ts +1 -1
- package/{src → dist}/normalizeAddConfigPath/normalizeAddConfigPath.js +2 -8
- package/{src → dist}/parseGraphQLSchema/index.d.ts +2 -2
- package/dist/parseGraphQLSchema/index.js +1 -0
- package/{src → dist}/parseGraphQLSchema/normalizeResolverName.d.ts +1 -1
- package/{src → dist}/parseGraphQLSchema/normalizeResolverName.js +1 -6
- package/{src → dist}/parseGraphQLSchema/parseGraphQLSchema.d.ts +5 -5
- package/{src → dist}/parseGraphQLSchema/parseGraphQLSchema.js +43 -50
- package/{src → dist}/parseGraphQLSchema/parseLocationForOutputDir.d.ts +2 -2
- package/{src → dist}/parseGraphQLSchema/parseLocationForOutputDir.js +4 -10
- package/dist/parseSources/index.d.ts +1 -0
- package/dist/parseSources/index.js +1 -0
- package/{src → dist}/parseSources/parseSources.d.ts +1 -1
- package/{src → dist}/parseSources/parseSources.js +2 -7
- package/{src → dist}/parseTypeMappers/collectTypeMappersFromSourceFile.d.ts +2 -2
- package/{src → dist}/parseTypeMappers/collectTypeMappersFromSourceFile.js +15 -21
- package/dist/parseTypeMappers/index.d.ts +1 -0
- package/dist/parseTypeMappers/index.js +1 -0
- package/{src → dist}/parseTypeMappers/parseTypeMappers.d.ts +2 -2
- package/dist/parseTypeMappers/parseTypeMappers.js +20 -0
- package/{src → dist}/preset.d.ts +1 -1
- package/dist/preset.js +214 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -0
- package/dist/utils/cwd.js +7 -0
- package/dist/utils/fmt.js +15 -0
- package/dist/utils/index.d.ts +12 -0
- package/dist/utils/index.js +12 -0
- package/{src → dist}/utils/isMatchResolverNamePattern.js +3 -9
- package/dist/utils/isNativeNamedType.js +13 -0
- package/dist/utils/isRootObjectType.js +3 -0
- package/{src → dist}/utils/isWhitelistedModule.js +1 -6
- package/{src → dist}/utils/logger.d.ts +1 -1
- package/dist/utils/logger.js +13 -0
- package/dist/utils/normalizeImportExtension.js +9 -0
- package/dist/utils/normalizeRelativePath.js +6 -0
- package/{src → dist}/utils/parseLocationForWhitelistedModule.d.ts +1 -1
- package/dist/utils/parseLocationForWhitelistedModule.js +17 -0
- package/{src → dist}/utils/printImportLine.d.ts +1 -1
- package/{src → dist}/utils/printImportLine.js +3 -7
- package/dist/utils/relativeModulePath.js +6 -0
- package/dist/validateAndMergeParsedConfigs/index.d.ts +1 -0
- package/dist/validateAndMergeParsedConfigs/index.js +1 -0
- package/{src → dist}/validateAndMergeParsedConfigs/validateAndMergeParsedConfigs.d.ts +2 -2
- package/{src → dist}/validateAndMergeParsedConfigs/validateAndMergeParsedConfigs.js +16 -13
- package/dist/validatePresetConfig/index.d.ts +1 -0
- package/dist/validatePresetConfig/index.js +1 -0
- package/{src → dist}/validatePresetConfig/validatePresetConfig.d.ts +2 -2
- package/{src → dist}/validatePresetConfig/validatePresetConfig.js +29 -36
- package/eslint.config.mjs +22 -0
- package/package.json +19 -12
- package/project.json +8 -0
- package/src/addVirtualTypesFileToTsMorphProject/addVirtualTypesFileToTsMorphProject.ts +109 -0
- package/src/addVirtualTypesFileToTsMorphProject/index.ts +1 -0
- package/src/defineConfig.spec.ts +76 -0
- package/src/defineConfig.ts +37 -0
- package/src/generateResolverFiles/addExternalResolverImport.ts +185 -0
- package/src/generateResolverFiles/addObjectTypeResolversPropertyAssignmentNodesIfNotImplemented.spec.ts +1174 -0
- package/src/generateResolverFiles/addObjectTypeResolversPropertyAssignmentNodesIfNotImplemented.ts +144 -0
- package/src/generateResolverFiles/addResolverMainFiles.ts +343 -0
- package/src/generateResolverFiles/ensureEnumTypeResolversAreGenerated.ts +51 -0
- package/src/generateResolverFiles/generateResolverFiles.ts +148 -0
- package/src/generateResolverFiles/getImportStatementWithExpectedNamedImport.spec.ts +127 -0
- package/src/generateResolverFiles/getImportStatementWithExpectedNamedImport.ts +25 -0
- package/src/generateResolverFiles/getVariableStatementWithExpectedIdentifier.spec.ts +147 -0
- package/src/generateResolverFiles/getVariableStatementWithExpectedIdentifier.ts +34 -0
- package/src/generateResolverFiles/handleGraphQLEnumType.ts +100 -0
- package/src/generateResolverFiles/handleGraphQLInterfaceType.ts +70 -0
- package/src/generateResolverFiles/handleGraphQLObjectType.ts +171 -0
- package/src/generateResolverFiles/handleGraphQLRootObjectTypeField.ts +105 -0
- package/src/generateResolverFiles/handleGraphQLScalarType.ts +81 -0
- package/src/generateResolverFiles/handleGraphQLUnionType.ts +68 -0
- package/src/generateResolverFiles/index.ts +2 -0
- package/src/generateResolverFiles/postProcessFiles.ts +287 -0
- package/src/generateResolverFiles/types.ts +203 -0
- package/src/generateResolverFiles/visitNamedType.ts +66 -0
- package/src/generateTypeDefsFiles/generateTypeDefsContent.ts +15 -0
- package/src/generateTypeDefsFiles/generateTypeDefsFiles.ts +100 -0
- package/src/generateTypeDefsFiles/index.ts +1 -0
- package/src/getGraphQLObjectTypeResolversToGenerate/getGraphQLObjectTypeResolversToGenerate.ts +361 -0
- package/src/getGraphQLObjectTypeResolversToGenerate/getNodePropertyMap.spec.ts +115 -0
- package/src/getGraphQLObjectTypeResolversToGenerate/getNodePropertyMap.ts +88 -0
- package/src/getGraphQLObjectTypeResolversToGenerate/index.ts +1 -0
- package/src/index.ts +3 -0
- package/src/normalizeAddConfigPath/index.ts +1 -0
- package/src/normalizeAddConfigPath/normalizeAddConfigPath.ts +29 -0
- package/src/parseGraphQLSchema/index.ts +2 -0
- package/src/parseGraphQLSchema/normalizeResolverName.ts +28 -0
- package/src/parseGraphQLSchema/parseGraphQLSchema.ts +531 -0
- package/src/parseGraphQLSchema/parseLocationForOutputDir.ts +76 -0
- package/src/parseSources/index.ts +1 -0
- package/src/parseSources/parseSources.ts +83 -0
- package/src/parseTypeMappers/collectTypeMappersFromSourceFile.spec.ts +789 -0
- package/src/parseTypeMappers/collectTypeMappersFromSourceFile.ts +197 -0
- package/src/parseTypeMappers/index.ts +1 -0
- package/src/parseTypeMappers/parseTypeMappers.ts +75 -0
- package/src/preset.ts +317 -0
- package/src/utils/cwd.ts +8 -0
- package/src/utils/fmt.ts +16 -0
- package/src/utils/index.ts +12 -0
- package/src/utils/isMatchResolverNamePattern.ts +27 -0
- package/src/utils/isNativeNamedType.ts +21 -0
- package/src/utils/isRootObjectType.ts +8 -0
- package/src/utils/isWhitelistedModule.spec.ts +71 -0
- package/src/utils/isWhitelistedModule.ts +21 -0
- package/src/utils/logger.ts +14 -0
- package/src/utils/normalizeImportExtension.spec.ts +42 -0
- package/src/utils/normalizeImportExtension.ts +16 -0
- package/src/utils/normalizeRelativePath.ts +6 -0
- package/src/utils/parseLocationForWhitelistedModule.spec.ts +130 -0
- package/src/utils/parseLocationForWhitelistedModule.ts +38 -0
- package/src/utils/printImportLine.spec.ts +150 -0
- package/src/utils/printImportLine.ts +78 -0
- package/src/utils/relativeModulePath.ts +7 -0
- package/src/validateAndMergeParsedConfigs/index.ts +1 -0
- package/src/validateAndMergeParsedConfigs/validateAndMergeParsedConfigs.spec.ts +211 -0
- package/src/validateAndMergeParsedConfigs/validateAndMergeParsedConfigs.ts +92 -0
- package/src/validatePresetConfig/index.ts +1 -0
- package/src/validatePresetConfig/validatePresetConfig.spec.ts +706 -0
- package/src/validatePresetConfig/validatePresetConfig.ts +571 -0
- package/tsconfig.json +14 -0
- package/tsconfig.lib.json +18 -0
- package/tsconfig.spec.json +20 -0
- package/vite.config.ts +24 -0
- package/src/addVirtualTypesFileToTsMorphProject/addVirtualTypesFileToTsMorphProject.js.map +0 -1
- package/src/addVirtualTypesFileToTsMorphProject/index.d.ts +0 -1
- package/src/addVirtualTypesFileToTsMorphProject/index.js +0 -5
- package/src/addVirtualTypesFileToTsMorphProject/index.js.map +0 -1
- package/src/defineConfig.js.map +0 -1
- package/src/generateResolverFiles/addExternalResolverImport.js.map +0 -1
- package/src/generateResolverFiles/addObjectTypeResolversPropertyAssignmentNodesIfNotImplemented.js.map +0 -1
- package/src/generateResolverFiles/addResolverMainFiles.js.map +0 -1
- package/src/generateResolverFiles/ensureEnumTypeResolversAreGenerated.js.map +0 -1
- package/src/generateResolverFiles/generateResolverFiles.js +0 -54
- package/src/generateResolverFiles/generateResolverFiles.js.map +0 -1
- package/src/generateResolverFiles/getImportStatementWithExpectedNamedImport.js +0 -20
- package/src/generateResolverFiles/getImportStatementWithExpectedNamedImport.js.map +0 -1
- package/src/generateResolverFiles/getVariableStatementWithExpectedIdentifier.js.map +0 -1
- package/src/generateResolverFiles/handleGraphQLEnumType.js.map +0 -1
- package/src/generateResolverFiles/handleGraphQLInterfaceType.js.map +0 -1
- package/src/generateResolverFiles/handleGraphQLObjectType.js.map +0 -1
- package/src/generateResolverFiles/handleGraphQLRootObjectTypeField.d.ts +0 -3
- package/src/generateResolverFiles/handleGraphQLRootObjectTypeField.js.map +0 -1
- package/src/generateResolverFiles/handleGraphQLScalarType.js.map +0 -1
- package/src/generateResolverFiles/handleGraphQLUnionType.js.map +0 -1
- package/src/generateResolverFiles/index.d.ts +0 -2
- package/src/generateResolverFiles/index.js +0 -6
- package/src/generateResolverFiles/index.js.map +0 -1
- package/src/generateResolverFiles/postProcessFiles.js.map +0 -1
- package/src/generateResolverFiles/types.js +0 -3
- package/src/generateResolverFiles/types.js.map +0 -1
- package/src/generateResolverFiles/visitNamedType.js.map +0 -1
- package/src/generateTypeDefsFiles/generateTypeDefsContent.js +0 -12
- package/src/generateTypeDefsFiles/generateTypeDefsContent.js.map +0 -1
- package/src/generateTypeDefsFiles/generateTypeDefsFiles.js.map +0 -1
- package/src/generateTypeDefsFiles/index.d.ts +0 -1
- package/src/generateTypeDefsFiles/index.js +0 -5
- package/src/generateTypeDefsFiles/index.js.map +0 -1
- package/src/getGraphQLObjectTypeResolversToGenerate/getGraphQLObjectTypeResolversToGenerate.js.map +0 -1
- package/src/getGraphQLObjectTypeResolversToGenerate/getNodePropertyMap.js.map +0 -1
- package/src/getGraphQLObjectTypeResolversToGenerate/index.d.ts +0 -1
- package/src/getGraphQLObjectTypeResolversToGenerate/index.js +0 -5
- package/src/getGraphQLObjectTypeResolversToGenerate/index.js.map +0 -1
- package/src/index.d.ts +0 -3
- package/src/index.js +0 -10
- package/src/index.js.map +0 -1
- package/src/normalizeAddConfigPath/index.d.ts +0 -1
- package/src/normalizeAddConfigPath/index.js +0 -5
- package/src/normalizeAddConfigPath/index.js.map +0 -1
- package/src/normalizeAddConfigPath/normalizeAddConfigPath.js.map +0 -1
- package/src/parseGraphQLSchema/index.js +0 -5
- package/src/parseGraphQLSchema/index.js.map +0 -1
- package/src/parseGraphQLSchema/normalizeResolverName.js.map +0 -1
- package/src/parseGraphQLSchema/parseGraphQLSchema.js.map +0 -1
- package/src/parseGraphQLSchema/parseLocationForOutputDir.js.map +0 -1
- package/src/parseSources/index.d.ts +0 -1
- package/src/parseSources/index.js +0 -5
- package/src/parseSources/index.js.map +0 -1
- package/src/parseSources/parseSources.js.map +0 -1
- package/src/parseTypeMappers/collectTypeMappersFromSourceFile.js.map +0 -1
- package/src/parseTypeMappers/index.d.ts +0 -1
- package/src/parseTypeMappers/index.js +0 -5
- package/src/parseTypeMappers/index.js.map +0 -1
- package/src/parseTypeMappers/parseTypeMappers.js +0 -26
- package/src/parseTypeMappers/parseTypeMappers.js.map +0 -1
- package/src/preset.js +0 -214
- package/src/preset.js.map +0 -1
- package/src/utils/cwd.js +0 -13
- package/src/utils/cwd.js.map +0 -1
- package/src/utils/fmt.js +0 -19
- package/src/utils/fmt.js.map +0 -1
- package/src/utils/index.d.ts +0 -12
- package/src/utils/index.js +0 -16
- package/src/utils/index.js.map +0 -1
- package/src/utils/isMatchResolverNamePattern.js.map +0 -1
- package/src/utils/isNativeNamedType.js +0 -18
- package/src/utils/isNativeNamedType.js.map +0 -1
- package/src/utils/isRootObjectType.js +0 -8
- package/src/utils/isRootObjectType.js.map +0 -1
- package/src/utils/isWhitelistedModule.js.map +0 -1
- package/src/utils/logger.js +0 -17
- package/src/utils/logger.js.map +0 -1
- package/src/utils/normalizeImportExtension.js +0 -13
- package/src/utils/normalizeImportExtension.js.map +0 -1
- package/src/utils/normalizeRelativePath.js +0 -11
- package/src/utils/normalizeRelativePath.js.map +0 -1
- package/src/utils/parseLocationForWhitelistedModule.js +0 -22
- package/src/utils/parseLocationForWhitelistedModule.js.map +0 -1
- package/src/utils/printImportLine.js.map +0 -1
- package/src/utils/relativeModulePath.js +0 -12
- package/src/utils/relativeModulePath.js.map +0 -1
- package/src/validateAndMergeParsedConfigs/index.d.ts +0 -1
- package/src/validateAndMergeParsedConfigs/index.js +0 -5
- package/src/validateAndMergeParsedConfigs/index.js.map +0 -1
- package/src/validateAndMergeParsedConfigs/validateAndMergeParsedConfigs.js.map +0 -1
- package/src/validatePresetConfig/index.d.ts +0 -1
- package/src/validatePresetConfig/index.js +0 -5
- package/src/validatePresetConfig/index.js.map +0 -1
- package/src/validatePresetConfig/validatePresetConfig.js.map +0 -1
- /package/{src → dist}/generateTypeDefsFiles/generateTypeDefsContent.d.ts +0 -0
- /package/{src → dist}/getGraphQLObjectTypeResolversToGenerate/getNodePropertyMap.d.ts +0 -0
- /package/{src → dist}/utils/cwd.d.ts +0 -0
- /package/{src → dist}/utils/fmt.d.ts +0 -0
- /package/{src → dist}/utils/isMatchResolverNamePattern.d.ts +0 -0
- /package/{src → dist}/utils/isNativeNamedType.d.ts +0 -0
- /package/{src → dist}/utils/isRootObjectType.d.ts +0 -0
- /package/{src → dist}/utils/isWhitelistedModule.d.ts +0 -0
- /package/{src → dist}/utils/normalizeImportExtension.d.ts +0 -0
- /package/{src → dist}/utils/normalizeRelativePath.d.ts +0 -0
- /package/{src → dist}/utils/relativeModulePath.d.ts +0 -0
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const ts_morph_1 = require("ts-morph");
|
|
5
|
-
const getNodePropertyMap_1 = require("./getNodePropertyMap");
|
|
6
|
-
const getGraphQLObjectTypeResolversToGenerate = ({ mode, tsMorphProject, typesSourceFile, typeMappersMap, userDefinedSchemaObjectTypeMap, generatedTypesFileMeta, }) => {
|
|
1
|
+
import { SyntaxKind, Node, } from 'ts-morph';
|
|
2
|
+
import { getNodePropertyMap, } from './getNodePropertyMap.js';
|
|
3
|
+
export const getGraphQLObjectTypeResolversToGenerate = ({ mode, tsMorphProject, typesSourceFile, typeMappersMap, userDefinedSchemaObjectTypeMap, generatedTypesFileMeta, }) => {
|
|
7
4
|
const typeMappersEntries = Object.entries(typeMappersMap);
|
|
8
5
|
if (typeMappersEntries.length === 0) {
|
|
9
6
|
return {};
|
|
@@ -39,14 +36,14 @@ const getGraphQLObjectTypeResolversToGenerate = ({ mode, tsMorphProject, typesSo
|
|
|
39
36
|
}
|
|
40
37
|
// Assumption: All resolvers exports are 1 level below root node i.e. we can use syntaxList.getChildren()
|
|
41
38
|
for (const node of syntaxList.getChildren()) {
|
|
42
|
-
if (node.isKind(
|
|
43
|
-
node.isKind(
|
|
39
|
+
if (node.isKind(SyntaxKind.TypeAliasDeclaration) ||
|
|
40
|
+
node.isKind(SyntaxKind.InterfaceDeclaration)) {
|
|
44
41
|
const identifierName = node.getNameNode().getText(); // e.g. UserResolvers, BookResolvers
|
|
45
42
|
const schemaType = generatedSchemaTypeNameMap[identifierName]; // schemaType examples: User, Book
|
|
46
43
|
if (schemaType && typeMappersMap[schemaType]) {
|
|
47
44
|
resolverTypesMap[schemaType] = {
|
|
48
45
|
node,
|
|
49
|
-
properties:
|
|
46
|
+
properties: getNodePropertyMap({ node }),
|
|
50
47
|
};
|
|
51
48
|
}
|
|
52
49
|
}
|
|
@@ -62,7 +59,7 @@ const getGraphQLObjectTypeResolversToGenerate = ({ mode, tsMorphProject, typesSo
|
|
|
62
59
|
tsMorphProject,
|
|
63
60
|
mapper,
|
|
64
61
|
});
|
|
65
|
-
const mapperPropsMap =
|
|
62
|
+
const mapperPropsMap = getNodePropertyMap({
|
|
66
63
|
node: mapperOriginalDeclarationNode,
|
|
67
64
|
});
|
|
68
65
|
Object.values(resolverType.properties).forEach((resolverTypeProp) => {
|
|
@@ -117,14 +114,14 @@ const getGraphQLObjectTypeResolversToGenerate = ({ mode, tsMorphProject, typesSo
|
|
|
117
114
|
const identifierName = identifier.getText();
|
|
118
115
|
const schemaType = generatedSchemaTypeNameMap[identifierName];
|
|
119
116
|
if (schemaType && userDefinedSchemaObjectTypeMap[schemaType]) {
|
|
120
|
-
schemaResolversTypePropertyMap[schemaType] =
|
|
117
|
+
schemaResolversTypePropertyMap[schemaType] = getNodePropertyMap({ node });
|
|
121
118
|
}
|
|
122
119
|
};
|
|
123
120
|
typesSourceFile
|
|
124
|
-
.getDescendantsOfKind(
|
|
121
|
+
.getDescendantsOfKind(SyntaxKind.TypeAliasDeclaration)
|
|
125
122
|
.forEach(populateSchemaTypeResolversPropertyMap);
|
|
126
123
|
typesSourceFile
|
|
127
|
-
.getDescendantsOfKind(
|
|
124
|
+
.getDescendantsOfKind(SyntaxKind.InterfaceDeclaration)
|
|
128
125
|
.forEach(populateSchemaTypeResolversPropertyMap);
|
|
129
126
|
// 3. Find resolvers to generate and add reason
|
|
130
127
|
const result = {};
|
|
@@ -137,7 +134,7 @@ const getGraphQLObjectTypeResolversToGenerate = ({ mode, tsMorphProject, typesSo
|
|
|
137
134
|
tsMorphProject,
|
|
138
135
|
mapper,
|
|
139
136
|
});
|
|
140
|
-
const typeMapperPropertyMap =
|
|
137
|
+
const typeMapperPropertyMap = getNodePropertyMap({
|
|
141
138
|
node: originalDeclarationNode,
|
|
142
139
|
});
|
|
143
140
|
Object.values(matchedSchemaTypePropertyMap).forEach((schemaTypeProperty) => {
|
|
@@ -186,7 +183,6 @@ const getGraphQLObjectTypeResolversToGenerate = ({ mode, tsMorphProject, typesSo
|
|
|
186
183
|
});
|
|
187
184
|
return result;
|
|
188
185
|
};
|
|
189
|
-
exports.getGraphQLObjectTypeResolversToGenerate = getGraphQLObjectTypeResolversToGenerate;
|
|
190
186
|
const mustGetMapperOriginalDeclarationNode = ({ tsMorphProject, mapper, }) => {
|
|
191
187
|
const typeMapperFile = tsMorphProject.getSourceFile(mapper.filename);
|
|
192
188
|
if (!typeMapperFile) {
|
|
@@ -205,13 +201,13 @@ const mustGetMapperOriginalDeclarationNode = ({ tsMorphProject, mapper, }) => {
|
|
|
205
201
|
const typedNode = descendant.isKind(mapper.kind);
|
|
206
202
|
if (typedNode) {
|
|
207
203
|
let identifierNode = descendant.getNameNode();
|
|
208
|
-
if (descendant.isKind(
|
|
204
|
+
if (descendant.isKind(SyntaxKind.ExportSpecifier)) {
|
|
209
205
|
const aliasNode = descendant.getAliasNode();
|
|
210
206
|
if (aliasNode) {
|
|
211
207
|
identifierNode = aliasNode;
|
|
212
208
|
}
|
|
213
209
|
}
|
|
214
|
-
if (
|
|
210
|
+
if (identifierNode?.getText() === mapper.name) {
|
|
215
211
|
return {
|
|
216
212
|
declarationNode: descendant,
|
|
217
213
|
identifierNode,
|
|
@@ -227,18 +223,17 @@ const mustGetMapperOriginalDeclarationNode = ({ tsMorphProject, mapper, }) => {
|
|
|
227
223
|
return getOriginalDeclarationNode(firstDescendantThatIsMapper);
|
|
228
224
|
};
|
|
229
225
|
const getOriginalDeclarationNode = ({ declarationNode, identifierNode, }) => {
|
|
230
|
-
if (declarationNode.isKind(
|
|
231
|
-
declarationNode.isKind(
|
|
226
|
+
if (declarationNode.isKind(SyntaxKind.ExportSpecifier) ||
|
|
227
|
+
declarationNode.isKind(SyntaxKind.ClassDeclaration)) {
|
|
232
228
|
return identifierNode.getDefinitionNodes()[0];
|
|
233
229
|
}
|
|
234
230
|
// InterfaceDeclaration
|
|
235
|
-
if (declarationNode.isKind(
|
|
231
|
+
if (declarationNode.isKind(SyntaxKind.InterfaceDeclaration)) {
|
|
236
232
|
return declarationNode;
|
|
237
233
|
}
|
|
238
234
|
// TypeAliasDeclaration
|
|
239
235
|
const typeNode = declarationNode.getTypeNodeOrThrow();
|
|
240
|
-
return
|
|
236
|
+
return Node.isTypeReference(typeNode)
|
|
241
237
|
? identifierNode.getDefinitionNodes()[0] // If type alias is a reference, go to definition using `getDefinitionNodes`
|
|
242
238
|
: declarationNode;
|
|
243
239
|
};
|
|
244
|
-
//# sourceMappingURL=getGraphQLObjectTypeResolversToGenerate.js.map
|
|
@@ -1,17 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getNodePropertyMap = void 0;
|
|
4
|
-
const ts_morph_1 = require("ts-morph");
|
|
1
|
+
import { SyntaxKind, } from 'ts-morph';
|
|
5
2
|
/**
|
|
6
3
|
* Function to get properties of a Node in a map
|
|
7
4
|
* If unable to find, returns empty object
|
|
8
5
|
*/
|
|
9
|
-
const getNodePropertyMap = ({ node, }) => {
|
|
6
|
+
export const getNodePropertyMap = ({ node, }) => {
|
|
10
7
|
if (!node) {
|
|
11
8
|
return {};
|
|
12
9
|
}
|
|
13
10
|
const properties = (() => {
|
|
14
|
-
if (node.isKind(
|
|
11
|
+
if (node.isKind(SyntaxKind.ClassDeclaration)) {
|
|
15
12
|
const result = [];
|
|
16
13
|
collectClassNodeProperties(node, result);
|
|
17
14
|
return result;
|
|
@@ -35,15 +32,14 @@ const getNodePropertyMap = ({ node, }) => {
|
|
|
35
32
|
}, {});
|
|
36
33
|
return nodePropertyMap;
|
|
37
34
|
};
|
|
38
|
-
exports.getNodePropertyMap = getNodePropertyMap;
|
|
39
35
|
const collectClassNodeProperties = (classNode, result) => {
|
|
40
36
|
const baseClass = classNode.getBaseClass();
|
|
41
37
|
if (baseClass) {
|
|
42
38
|
collectClassNodeProperties(baseClass, result);
|
|
43
39
|
}
|
|
44
40
|
classNode.getInstanceProperties().forEach((prop) => {
|
|
45
|
-
if (prop.hasModifier(
|
|
46
|
-
prop.hasModifier(
|
|
41
|
+
if (prop.hasModifier(SyntaxKind.PrivateKeyword) ||
|
|
42
|
+
prop.hasModifier(SyntaxKind.ProtectedKeyword)) {
|
|
47
43
|
return;
|
|
48
44
|
}
|
|
49
45
|
if (prop.getName().startsWith('#')) {
|
|
@@ -60,4 +56,3 @@ const collectClassNodeProperties = (classNode, result) => {
|
|
|
60
56
|
});
|
|
61
57
|
});
|
|
62
58
|
};
|
|
63
|
-
//# sourceMappingURL=getNodePropertyMap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './getGraphQLObjectTypeResolversToGenerate.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './getGraphQLObjectTypeResolversToGenerate.js';
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './normalizeAddConfigPath.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './normalizeAddConfigPath.js';
|
|
@@ -1,15 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.normalizeAddConfigPath = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const path = tslib_1.__importStar(require("path"));
|
|
1
|
+
import * as path from 'path';
|
|
6
2
|
/**
|
|
7
3
|
* normalizeAddConfigPath
|
|
8
4
|
*
|
|
9
5
|
* Function to turn the add config keys into normalized path a.k.a. path from baseOutputDir
|
|
10
6
|
* This helps us detects targeted file being given in different formats e.g. './types.generated.ts' vs 'types.generated.ts'
|
|
11
7
|
*/
|
|
12
|
-
const normalizeAddConfigPath = ({ add, baseOutputDir, }) => {
|
|
8
|
+
export const normalizeAddConfigPath = ({ add, baseOutputDir, }) => {
|
|
13
9
|
if (!add) {
|
|
14
10
|
return undefined;
|
|
15
11
|
}
|
|
@@ -19,5 +15,3 @@ const normalizeAddConfigPath = ({ add, baseOutputDir, }) => {
|
|
|
19
15
|
}, {});
|
|
20
16
|
return normalizedPathAdd;
|
|
21
17
|
};
|
|
22
|
-
exports.normalizeAddConfigPath = normalizeAddConfigPath;
|
|
23
|
-
//# sourceMappingURL=normalizeAddConfigPath.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './parseGraphQLSchema';
|
|
2
|
-
export type { NormalizedResolverName } from './normalizeResolverName';
|
|
1
|
+
export * from './parseGraphQLSchema.js';
|
|
2
|
+
export type { NormalizedResolverName } from './normalizeResolverName.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './parseGraphQLSchema.js';
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.normalizeResolverName = void 0;
|
|
4
1
|
/**
|
|
5
2
|
* Function to get format resolver name based on its definition in the schema
|
|
6
3
|
* - Root object type resolver e.g Query.me, Mutation.updateUser
|
|
@@ -10,12 +7,10 @@ exports.normalizeResolverName = void 0;
|
|
|
10
7
|
* - base: resolver name without module. This is used by to match up with config.externalResolvers.
|
|
11
8
|
* - withModule: resolver name with module. This is used to identify the resolver INTERNAL unique path used in main resolver files.
|
|
12
9
|
*/
|
|
13
|
-
const normalizeResolverName = (moduleName, name, rootObject) => {
|
|
10
|
+
export const normalizeResolverName = (moduleName, name, rootObject) => {
|
|
14
11
|
const baseResolverName = !rootObject ? name : `${rootObject}.${name}`;
|
|
15
12
|
return {
|
|
16
13
|
base: baseResolverName,
|
|
17
14
|
withModule: `${moduleName}.${baseResolverName}`,
|
|
18
15
|
};
|
|
19
16
|
};
|
|
20
|
-
exports.normalizeResolverName = normalizeResolverName;
|
|
21
|
-
//# sourceMappingURL=normalizeResolverName.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { type GraphQLSchema } from 'graphql';
|
|
2
|
-
import type { ParseSourcesResult } from '../parseSources';
|
|
3
|
-
import type { TypeMappersMap } from '../parseTypeMappers';
|
|
4
|
-
import type { ParsedPresetConfig, ScalarsOverridesType } from '../validatePresetConfig';
|
|
5
|
-
import { normalizeResolverName } from './normalizeResolverName';
|
|
6
|
-
import type { GeneratedTypesFileMeta } from '../generateResolverFiles';
|
|
2
|
+
import type { ParseSourcesResult } from '../parseSources/index.js';
|
|
3
|
+
import type { TypeMappersMap } from '../parseTypeMappers/index.js';
|
|
4
|
+
import type { ParsedPresetConfig, ScalarsOverridesType } from '../validatePresetConfig/index.js';
|
|
5
|
+
import { normalizeResolverName } from './normalizeResolverName.js';
|
|
6
|
+
import type { GeneratedTypesFileMeta } from '../generateResolverFiles/index.js';
|
|
7
7
|
interface ParseGraphQLSchemaParams {
|
|
8
8
|
schemaAst: GraphQLSchema;
|
|
9
9
|
sourceMap: ParseSourcesResult['sourceMap'];
|
|
@@ -1,29 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
const utils_1 = require("../utils");
|
|
9
|
-
const parseLocationForOutputDir_1 = require("./parseLocationForOutputDir");
|
|
10
|
-
const normalizeResolverName_1 = require("./normalizeResolverName");
|
|
11
|
-
const parseGraphQLSchema = (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ schemaAst, sourceMap, resolverTypesPath, typeMappersMap, scalarsModule, scalarsOverrides, mode, baseOutputDir, resolverRelativeTargetDir, whitelistedModules, blacklistedModules, }) {
|
|
1
|
+
import * as path from 'path';
|
|
2
|
+
import * as fs from 'fs';
|
|
3
|
+
import { isObjectType, isScalarType, isSpecifiedScalarType, isUnionType, isInterfaceType, isEnumType, } from 'graphql';
|
|
4
|
+
import { logger, isNativeNamedType, isRootObjectType, relativeModulePath, } from '../utils/index.js';
|
|
5
|
+
import { parseLocationForOutputDir } from './parseLocationForOutputDir.js';
|
|
6
|
+
import { normalizeResolverName } from './normalizeResolverName.js';
|
|
7
|
+
export const parseGraphQLSchema = async ({ schemaAst, sourceMap, resolverTypesPath, typeMappersMap, scalarsModule, scalarsOverrides, mode, baseOutputDir, resolverRelativeTargetDir, whitelistedModules, blacklistedModules, }) => {
|
|
12
8
|
const scalarsModuleResolverMap = scalarsModule
|
|
13
|
-
?
|
|
9
|
+
? await getScalarResolverMapFromModule(scalarsModule)
|
|
14
10
|
: {};
|
|
15
11
|
return Object.entries(schemaAst.getTypeMap()).reduce((res, [schemaType, namedType]) => {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
if ((0, graphql_1.isSpecifiedScalarType)(namedType)) {
|
|
12
|
+
if (isNativeNamedType(namedType)) {
|
|
13
|
+
if (isSpecifiedScalarType(namedType)) {
|
|
19
14
|
handleNativeScalarType({ schemaType, result: res, scalarsOverrides });
|
|
20
15
|
}
|
|
21
16
|
return res;
|
|
22
17
|
}
|
|
23
18
|
// Root object types e.g. Query, Mutation, Subscription
|
|
24
|
-
if (
|
|
19
|
+
if (isRootObjectType(schemaType) && isObjectType(namedType)) {
|
|
25
20
|
Object.entries(namedType.getFields()).forEach(([fieldName, fieldNode]) => {
|
|
26
|
-
var _a;
|
|
27
21
|
const resolverDetails = createResolverDetails({
|
|
28
22
|
belongsToRootObject: schemaType,
|
|
29
23
|
mode,
|
|
@@ -35,7 +29,7 @@ const parseGraphQLSchema = (_a) => tslib_1.__awaiter(void 0, [_a], void 0, funct
|
|
|
35
29
|
whitelistedModules,
|
|
36
30
|
schemaType,
|
|
37
31
|
nestedDirs: [schemaType],
|
|
38
|
-
location:
|
|
32
|
+
location: fieldNode.astNode?.loc,
|
|
39
33
|
resolverName: fieldName,
|
|
40
34
|
});
|
|
41
35
|
if (!resolverDetails) {
|
|
@@ -50,9 +44,9 @@ const parseGraphQLSchema = (_a) => tslib_1.__awaiter(void 0, [_a], void 0, funct
|
|
|
50
44
|
// - Interface
|
|
51
45
|
// - Enum
|
|
52
46
|
// - Non-root object types
|
|
53
|
-
if (
|
|
54
|
-
|
|
55
|
-
(!
|
|
47
|
+
if (isInterfaceType(namedType) ||
|
|
48
|
+
isEnumType(namedType) ||
|
|
49
|
+
(!isRootObjectType(schemaType) && isObjectType(namedType))) {
|
|
56
50
|
const typeMapperDetails = typeMappersMap[schemaType];
|
|
57
51
|
if (typeMapperDetails) {
|
|
58
52
|
res.pluginsConfig.defaultTypeMappers[typeMapperDetails.schemaType] =
|
|
@@ -60,7 +54,7 @@ const parseGraphQLSchema = (_a) => tslib_1.__awaiter(void 0, [_a], void 0, funct
|
|
|
60
54
|
}
|
|
61
55
|
}
|
|
62
56
|
// Other output object types
|
|
63
|
-
if (!
|
|
57
|
+
if (!isRootObjectType(schemaType) && isObjectType(namedType)) {
|
|
64
58
|
handleObjectType({
|
|
65
59
|
mode,
|
|
66
60
|
sourceMap,
|
|
@@ -76,7 +70,7 @@ const parseGraphQLSchema = (_a) => tslib_1.__awaiter(void 0, [_a], void 0, funct
|
|
|
76
70
|
return res;
|
|
77
71
|
}
|
|
78
72
|
// Handle scalar type wireups
|
|
79
|
-
if (
|
|
73
|
+
if (isScalarType(namedType)) {
|
|
80
74
|
handleScalarType({
|
|
81
75
|
scalarsModuleResolverMap,
|
|
82
76
|
schemaType,
|
|
@@ -101,21 +95,24 @@ const parseGraphQLSchema = (_a) => tslib_1.__awaiter(void 0, [_a], void 0, funct
|
|
|
101
95
|
whitelistedModules,
|
|
102
96
|
schemaType,
|
|
103
97
|
nestedDirs: [],
|
|
104
|
-
location:
|
|
98
|
+
location: namedType.astNode?.loc,
|
|
105
99
|
resolverName: namedType.name,
|
|
106
100
|
});
|
|
107
101
|
if (resolverDetails) {
|
|
108
|
-
if (
|
|
102
|
+
if (isScalarType(namedType)) {
|
|
109
103
|
res.userDefinedSchemaTypeMap.scalar[schemaType] = resolverDetails;
|
|
110
104
|
}
|
|
111
|
-
else if (
|
|
105
|
+
else if (isUnionType(namedType)) {
|
|
112
106
|
res.userDefinedSchemaTypeMap.union[schemaType] = resolverDetails;
|
|
113
107
|
}
|
|
114
|
-
else if (
|
|
108
|
+
else if (isInterfaceType(namedType)) {
|
|
115
109
|
res.userDefinedSchemaTypeMap.interface[schemaType] = resolverDetails;
|
|
116
110
|
}
|
|
117
|
-
else if (
|
|
118
|
-
res.userDefinedSchemaTypeMap.enum[schemaType] =
|
|
111
|
+
else if (isEnumType(namedType)) {
|
|
112
|
+
res.userDefinedSchemaTypeMap.enum[schemaType] = {
|
|
113
|
+
...resolverDetails,
|
|
114
|
+
allowedValues: namedType.astNode?.values?.map((v) => v.name.value) || [],
|
|
115
|
+
};
|
|
119
116
|
}
|
|
120
117
|
}
|
|
121
118
|
return res;
|
|
@@ -137,8 +134,7 @@ const parseGraphQLSchema = (_a) => tslib_1.__awaiter(void 0, [_a], void 0, funct
|
|
|
137
134
|
defaultTypeMappers: {},
|
|
138
135
|
},
|
|
139
136
|
});
|
|
140
|
-
}
|
|
141
|
-
exports.parseGraphQLSchema = parseGraphQLSchema;
|
|
137
|
+
};
|
|
142
138
|
const handleScalarType = ({ scalarsModuleResolverMap, schemaType, scalarsModule, scalarsOverrides, result, }) => {
|
|
143
139
|
const scalarsModuleResolver = scalarsModuleResolverMap[schemaType];
|
|
144
140
|
// Use found the scalar from scalar module
|
|
@@ -162,23 +158,23 @@ const handleScalarType = ({ scalarsModuleResolverMap, schemaType, scalarsModule,
|
|
|
162
158
|
}
|
|
163
159
|
}
|
|
164
160
|
};
|
|
165
|
-
const getScalarResolverMapFromModule = (scalarsModule) =>
|
|
161
|
+
const getScalarResolverMapFromModule = async (scalarsModule) => {
|
|
166
162
|
let module;
|
|
167
163
|
try {
|
|
168
|
-
module =
|
|
164
|
+
module = await import(scalarsModule);
|
|
169
165
|
}
|
|
170
166
|
catch (err) {
|
|
171
167
|
if (err instanceof Error &&
|
|
172
168
|
'code' in err &&
|
|
173
169
|
err.code === 'MODULE_NOT_FOUND') {
|
|
174
|
-
|
|
170
|
+
logger.warn(`Unable to import \`${scalarsModule}\`. Install \`${scalarsModule}\` or you have to implement Scalar resolvers by yourself.`);
|
|
175
171
|
}
|
|
176
172
|
}
|
|
177
173
|
if (!module || !module.resolvers) {
|
|
178
174
|
return {};
|
|
179
175
|
}
|
|
180
176
|
return module.resolvers;
|
|
181
|
-
}
|
|
177
|
+
};
|
|
182
178
|
const handleNativeScalarType = ({ schemaType, result, scalarsOverrides, }) => {
|
|
183
179
|
const override = scalarsOverrides[schemaType];
|
|
184
180
|
// Note: only override the type i.e. same functionality as `typescript` plugin's scalars
|
|
@@ -190,9 +186,8 @@ const handleNativeScalarType = ({ schemaType, result, scalarsOverrides, }) => {
|
|
|
190
186
|
const handleObjectType = ({ mode, sourceMap, resolverTypesPath, resolverRelativeTargetDir, baseOutputDir, blacklistedModules, whitelistedModules, namedType, schemaType, result, }) => {
|
|
191
187
|
// parse for details
|
|
192
188
|
const fieldsByGraphQLModule = Object.entries(namedType.getFields()).reduce((res, [_, fieldNode]) => {
|
|
193
|
-
|
|
194
|
-
const
|
|
195
|
-
const modulePath = path.dirname((fieldLocation === null || fieldLocation === void 0 ? void 0 : fieldLocation.source.name) || '');
|
|
189
|
+
const fieldLocation = fieldNode.astNode?.loc;
|
|
190
|
+
const modulePath = path.dirname(fieldLocation?.source.name || '');
|
|
196
191
|
if (!res[modulePath]) {
|
|
197
192
|
res[modulePath] = {
|
|
198
193
|
fieldNodes: [],
|
|
@@ -231,11 +226,14 @@ const handleObjectType = ({ mode, sourceMap, resolverTypesPath, resolverRelative
|
|
|
231
226
|
//
|
|
232
227
|
// If there's only one module, we return an empty array i.e. pick all fields
|
|
233
228
|
const fieldsToPick = graphQLModules.length > 1 ? fieldNodes.map((field) => field.name) : [];
|
|
234
|
-
result.userDefinedSchemaTypeMap.object[schemaType][resolverDetails.normalizedResolverName.withModule] =
|
|
229
|
+
result.userDefinedSchemaTypeMap.object[schemaType][resolverDetails.normalizedResolverName.withModule] = {
|
|
230
|
+
...resolverDetails,
|
|
231
|
+
fieldsToPick,
|
|
232
|
+
};
|
|
235
233
|
});
|
|
236
234
|
};
|
|
237
235
|
const createResolverDetails = ({ belongsToRootObject, mode, sourceMap, resolverRelativeTargetDir, resolverTypesPath, baseOutputDir, blacklistedModules, whitelistedModules, schemaType, nestedDirs, location, resolverName, }) => {
|
|
238
|
-
const parsedDetails =
|
|
236
|
+
const parsedDetails = parseLocationForOutputDir({
|
|
239
237
|
nestedDirs,
|
|
240
238
|
location,
|
|
241
239
|
mode,
|
|
@@ -250,7 +248,7 @@ const createResolverDetails = ({ belongsToRootObject, mode, sourceMap, resolverR
|
|
|
250
248
|
return;
|
|
251
249
|
}
|
|
252
250
|
const { moduleName, resolversOutputDir, relativePathFromBaseToModule } = parsedDetails;
|
|
253
|
-
const normalizedResolverName =
|
|
251
|
+
const normalizedResolverName = normalizeResolverName(moduleName, resolverName, belongsToRootObject);
|
|
254
252
|
const resolverFilePath = path.posix.join(resolversOutputDir, `${resolverName}.ts`);
|
|
255
253
|
return {
|
|
256
254
|
schemaType,
|
|
@@ -262,22 +260,17 @@ const createResolverDetails = ({ belongsToRootObject, mode, sourceMap, resolverR
|
|
|
262
260
|
},
|
|
263
261
|
relativePathFromBaseToModule,
|
|
264
262
|
normalizedResolverName,
|
|
265
|
-
typeNamedImport: ({ generatedResolverTypes }) =>
|
|
266
|
-
|
|
267
|
-
return ((_a = generatedResolverTypes.userDefined[schemaType]) === null || _a === void 0 ? void 0 : _a.name) ||
|
|
268
|
-
`${schemaType}Resolvers`;
|
|
269
|
-
},
|
|
263
|
+
typeNamedImport: ({ generatedResolverTypes }) => generatedResolverTypes.userDefined[schemaType]?.name ||
|
|
264
|
+
`${schemaType}Resolvers`,
|
|
270
265
|
typeString: ({ generatedResolverTypes }) => {
|
|
271
|
-
var _a;
|
|
272
266
|
if (belongsToRootObject) {
|
|
273
267
|
return generatedResolverTypes.userDefined[schemaType]
|
|
274
268
|
? `${generatedResolverTypes.userDefined[schemaType].name}['${resolverName}']`
|
|
275
269
|
: `${schemaType}Resolvers['${resolverName}']`;
|
|
276
270
|
}
|
|
277
|
-
return (
|
|
271
|
+
return (generatedResolverTypes.userDefined[schemaType]?.name ||
|
|
278
272
|
`${schemaType}Resolvers`);
|
|
279
273
|
},
|
|
280
|
-
relativePathToResolverTypesFile:
|
|
274
|
+
relativePathToResolverTypesFile: relativeModulePath(resolversOutputDir, resolverTypesPath),
|
|
281
275
|
};
|
|
282
276
|
};
|
|
283
|
-
//# sourceMappingURL=parseGraphQLSchema.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Location } from 'graphql';
|
|
2
|
-
import type { ParsedPresetConfig } from '../validatePresetConfig';
|
|
3
|
-
import type { ParseSourcesResult } from '../parseSources';
|
|
2
|
+
import type { ParsedPresetConfig } from '../validatePresetConfig/index.js';
|
|
3
|
+
import type { ParseSourcesResult } from '../parseSources/index.js';
|
|
4
4
|
interface ParseLocationForOutputDirParams {
|
|
5
5
|
nestedDirs: string[];
|
|
6
6
|
location?: Location;
|
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.parseLocationForOutputDir = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const path = tslib_1.__importStar(require("path"));
|
|
6
|
-
const utils_1 = require("../utils");
|
|
1
|
+
import * as path from 'path';
|
|
2
|
+
import { parseLocationForWhitelistedModule } from '../utils/index.js';
|
|
7
3
|
/**
|
|
8
4
|
* Parse location to see which module it belongs to.
|
|
9
5
|
* Also check against whitelisted and blacklisted to see if need to generate file.
|
|
10
6
|
*/
|
|
11
|
-
const parseLocationForOutputDir = ({ nestedDirs, mode, sourceMap, whitelistedModules, blacklistedModules, baseOutputDir, resolverRelativeTargetDir, location, }) => {
|
|
7
|
+
export const parseLocationForOutputDir = ({ nestedDirs, mode, sourceMap, whitelistedModules, blacklistedModules, baseOutputDir, resolverRelativeTargetDir, location, }) => {
|
|
12
8
|
// If mode is "merged", there's only one module:
|
|
13
9
|
// - always generate a.k.a it's always whitelisted
|
|
14
10
|
// - put them together at designated relativeTargetDir
|
|
@@ -22,7 +18,7 @@ const parseLocationForOutputDir = ({ nestedDirs, mode, sourceMap, whitelistedMod
|
|
|
22
18
|
}
|
|
23
19
|
// 2. mode is "modules", each module is the folder containing the schema files
|
|
24
20
|
// This means one or multiple schema files can add up to one module
|
|
25
|
-
const parsedSource =
|
|
21
|
+
const parsedSource = parseLocationForWhitelistedModule({
|
|
26
22
|
location,
|
|
27
23
|
sourceMap,
|
|
28
24
|
whitelistedModules,
|
|
@@ -36,5 +32,3 @@ const parseLocationForOutputDir = ({ nestedDirs, mode, sourceMap, whitelistedMod
|
|
|
36
32
|
}
|
|
37
33
|
: undefined;
|
|
38
34
|
};
|
|
39
|
-
exports.parseLocationForOutputDir = parseLocationForOutputDir;
|
|
40
|
-
//# sourceMappingURL=parseLocationForOutputDir.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './parseSources.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './parseSources.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as path from 'path';
|
|
2
2
|
import type { Source } from '@graphql-tools/utils';
|
|
3
|
-
import type { ModuleNamingMode } from '../validatePresetConfig';
|
|
3
|
+
import type { ModuleNamingMode } from '../validatePresetConfig/index.js';
|
|
4
4
|
export interface ParsedSource {
|
|
5
5
|
source: Source;
|
|
6
6
|
sourcePath: path.ParsedPath;
|
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.parseSources = parseSources;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const path = tslib_1.__importStar(require("path"));
|
|
6
|
-
function parseSources({ sources, baseOutputDir, moduleNamingMode, }) {
|
|
1
|
+
import * as path from 'path';
|
|
2
|
+
export function parseSources({ sources, baseOutputDir, moduleNamingMode, }) {
|
|
7
3
|
return sources.reduce((result, source) => {
|
|
8
4
|
if (!source.location) {
|
|
9
5
|
throw new Error('Missing source location');
|
|
@@ -38,4 +34,3 @@ const selectModuleName = ({ moduleNamingMode, relativePathFromBaseToModule, }) =
|
|
|
38
34
|
}
|
|
39
35
|
return relativePathFromBaseToModule[wrappedModuleNamingMode];
|
|
40
36
|
};
|
|
41
|
-
//# sourceMappingURL=parseSources.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type SourceFile } from 'ts-morph';
|
|
2
|
-
import { type ImportExtension } from '../utils';
|
|
3
|
-
import type { TypeMappersMap } from './parseTypeMappers';
|
|
2
|
+
import { type ImportExtension } from '../utils/index.js';
|
|
3
|
+
import type { TypeMappersMap } from './parseTypeMappers.js';
|
|
4
4
|
export declare const collectTypeMappersFromSourceFile: ({ typeMappersSourceFile, typeMappersSuffix, resolverTypesPath, emitLegacyCommonJSImports, importExtension, }: {
|
|
5
5
|
typeMappersSourceFile: SourceFile;
|
|
6
6
|
typeMappersSuffix: string;
|