@eddeee888/gcg-typescript-resolver-files 0.17.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.
- 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/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/package.json +22 -11
- 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
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2023 Eddy Nguyen
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -5,8 +5,8 @@ This [GraphQL Code Generator](https://www.the-guild.dev/graphql/codegen) plugin
|
|
|
5
5
|
This relies on types generated from [@graphql-codegen/typescript](https://the-guild.dev/graphql/codegen/plugins/typescript/typescript) and [@graphql-codegen/typescript-resolvers](https://the-guild.dev/graphql/codegen/plugins/typescript/typescript-resolvers) plugins.
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
pnpm add -D @graphql-codegen/cli @eddeee888/gcg-typescript-resolver-files
|
|
9
|
+
pnpm add graphql-scalars
|
|
10
10
|
```
|
|
11
11
|
|
|
12
12
|
## Features
|
|
@@ -259,7 +259,7 @@ defineConfig({
|
|
|
259
259
|
Hint: To see why certain files are skipped, run codegen command with `DEBUG` turned on:
|
|
260
260
|
|
|
261
261
|
```
|
|
262
|
-
DEBUG="@eddeee888/gcg-typescript-resolver-files"
|
|
262
|
+
DEBUG="@eddeee888/gcg-typescript-resolver-files" pnpm graphql-codegen
|
|
263
263
|
```
|
|
264
264
|
|
|
265
265
|
### typeDefsFileMode
|
package/{src → dist}/addVirtualTypesFileToTsMorphProject/addVirtualTypesFileToTsMorphProject.d.ts
RENAMED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { AddPluginConfig } from '@graphql-codegen/add
|
|
1
|
+
import type { AddPluginConfig } from '@graphql-codegen/add';
|
|
2
2
|
import type { GraphQLSchema } from 'graphql';
|
|
3
3
|
import type { SourceFile, Project } from 'ts-morph';
|
|
4
4
|
import type { ServerConfig } from '@eddeee888/gcg-server-config';
|
|
5
|
-
import type { GeneratedTypesFileMeta } from '../generateResolverFiles';
|
|
5
|
+
import type { GeneratedTypesFileMeta } from '../generateResolverFiles/index.js';
|
|
6
6
|
export declare const addVirtualTypesFileToTsMorphProject: ({ tsMorphProject, schemaAst, resolverTypesPath, resolverTypesConfig, addConfig, }: {
|
|
7
7
|
tsMorphProject: Project;
|
|
8
8
|
schemaAst: GraphQLSchema;
|
package/{src → dist}/addVirtualTypesFileToTsMorphProject/addVirtualTypesFileToTsMorphProject.js
RENAMED
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const typeScriptPlugin = tslib_1.__importStar(require("@graphql-codegen/typescript"));
|
|
7
|
-
const typeScriptResolversPlugin = tslib_1.__importStar(require("@graphql-codegen/typescript-resolvers"));
|
|
8
|
-
const addVirtualTypesFileToTsMorphProject = (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ tsMorphProject, schemaAst, resolverTypesPath, resolverTypesConfig, addConfig, }) {
|
|
9
|
-
const typesFile = yield generateVirtualTypesFile({
|
|
1
|
+
import * as addPlugin from '@graphql-codegen/add';
|
|
2
|
+
import * as typeScriptPlugin from '@graphql-codegen/typescript';
|
|
3
|
+
import * as typeScriptResolversPlugin from '@graphql-codegen/typescript-resolvers';
|
|
4
|
+
export const addVirtualTypesFileToTsMorphProject = async ({ tsMorphProject, schemaAst, resolverTypesPath, resolverTypesConfig, addConfig, }) => {
|
|
5
|
+
const typesFile = await generateVirtualTypesFile({
|
|
10
6
|
schemaAst,
|
|
11
7
|
resolverTypesPath,
|
|
12
8
|
resolverTypesConfig,
|
|
@@ -14,15 +10,13 @@ const addVirtualTypesFileToTsMorphProject = (_a) => tslib_1.__awaiter(void 0, [_
|
|
|
14
10
|
});
|
|
15
11
|
const typesSourceFile = tsMorphProject.createSourceFile(typesFile.filePath, typesFile.content, { overwrite: true });
|
|
16
12
|
return { typesSourceFile, meta: typesFile.meta };
|
|
17
|
-
}
|
|
18
|
-
exports.addVirtualTypesFileToTsMorphProject = addVirtualTypesFileToTsMorphProject;
|
|
13
|
+
};
|
|
19
14
|
/**
|
|
20
15
|
* getVirtualTypesFile generates a virtual types.generated.ts file
|
|
21
16
|
* This is used to statically detect and compare types in the parse and post-process steps
|
|
22
17
|
*/
|
|
23
|
-
const generateVirtualTypesFile =
|
|
24
|
-
|
|
25
|
-
const [typescriptResult, typescriptResolversResult, addResult] = yield Promise.all([
|
|
18
|
+
const generateVirtualTypesFile = async ({ schemaAst, resolverTypesPath, resolverTypesConfig, addConfig, }) => {
|
|
19
|
+
const [typescriptResult, typescriptResolversResult, addResult] = await Promise.all([
|
|
26
20
|
typeScriptPlugin.plugin(schemaAst, [], resolverTypesConfig),
|
|
27
21
|
typeScriptResolversPlugin.plugin(schemaAst, [], resolverTypesConfig),
|
|
28
22
|
addConfig ? addPlugin.plugin(schemaAst, [], addConfig) : '',
|
|
@@ -41,13 +35,14 @@ const generateVirtualTypesFile = (_a) => tslib_1.__awaiter(void 0, [_a], void 0,
|
|
|
41
35
|
${print(addResultAsComplextOutput.append)}
|
|
42
36
|
`,
|
|
43
37
|
meta: {
|
|
44
|
-
generatedResolverTypes:
|
|
38
|
+
generatedResolverTypes: typescriptResolversResult.meta
|
|
39
|
+
?.generatedResolverTypes || {
|
|
45
40
|
resolversMap: { name: 'Resolvers' },
|
|
46
41
|
userDefined: {},
|
|
47
42
|
},
|
|
48
43
|
},
|
|
49
44
|
};
|
|
50
|
-
}
|
|
45
|
+
};
|
|
51
46
|
const convertPluginOutputToComplextPluginOutput = (output) => {
|
|
52
47
|
if (typeof output === 'string') {
|
|
53
48
|
return {
|
|
@@ -59,4 +54,3 @@ const convertPluginOutputToComplextPluginOutput = (output) => {
|
|
|
59
54
|
}
|
|
60
55
|
return output;
|
|
61
56
|
};
|
|
62
|
-
//# sourceMappingURL=addVirtualTypesFileToTsMorphProject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './addVirtualTypesFileToTsMorphProject.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './addVirtualTypesFileToTsMorphProject.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Types } from '@graphql-codegen/plugin-helpers';
|
|
2
|
-
import type { TypedPresetConfig } from './validatePresetConfig';
|
|
2
|
+
import type { TypedPresetConfig } from './validatePresetConfig/index.js';
|
|
3
3
|
export declare const defineConfig: (presetConfig?: TypedPresetConfig, context?: {
|
|
4
4
|
baseOutputDir?: string;
|
|
5
5
|
schema?: Types.ConfiguredOutput["schema"];
|
|
@@ -1,22 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const path = tslib_1.__importStar(require("path"));
|
|
6
|
-
const preset_1 = require("./preset");
|
|
7
|
-
const defineConfig = (presetConfig = {}, context = {}) => {
|
|
1
|
+
import * as path from 'path';
|
|
2
|
+
import { preset } from './preset.js';
|
|
3
|
+
export const defineConfig = (presetConfig = {}, context = {}) => {
|
|
8
4
|
const { schema, baseOutputDir = '', hooks } = context;
|
|
9
5
|
const mappersFileExtension = presetConfig.mappersFileExtension || '.mappers.ts';
|
|
10
6
|
const watchPattern = [];
|
|
11
7
|
const mapperWatchPattern = path.posix.join(baseOutputDir, '**', `*${mappersFileExtension}`);
|
|
12
8
|
watchPattern.push(mapperWatchPattern);
|
|
13
9
|
return {
|
|
14
|
-
preset
|
|
10
|
+
preset,
|
|
15
11
|
presetConfig,
|
|
16
12
|
watchPattern,
|
|
17
13
|
schema,
|
|
18
14
|
hooks,
|
|
19
15
|
};
|
|
20
16
|
};
|
|
21
|
-
exports.defineConfig = defineConfig;
|
|
22
|
-
//# sourceMappingURL=defineConfig.js.map
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.addExternalResolverImport = void 0;
|
|
4
|
-
const utils_1 = require("../utils");
|
|
1
|
+
import { normalizeRelativePath } from '../utils/index.js';
|
|
5
2
|
/**
|
|
6
3
|
* addExternalResolverImport
|
|
7
4
|
*
|
|
@@ -13,7 +10,7 @@ const utils_1 = require("../utils");
|
|
|
13
10
|
* 2. dedupes any duplicated imports
|
|
14
11
|
* 3. declares the which identifier name to use for GraphQL object or resolver in identifierUsages
|
|
15
12
|
*/
|
|
16
|
-
const addExternalResolverImport = (params, { result, config: { emitLegacyCommonJSImports, importExtension }, }) => {
|
|
13
|
+
export const addExternalResolverImport = (params, { result, config: { emitLegacyCommonJSImports, importExtension }, }) => {
|
|
17
14
|
const { importIdentifier, identifierUsage, moduleImport } = parseImportSyntax(params);
|
|
18
15
|
let shouldPushIndentifierUsages = false;
|
|
19
16
|
result.externalImports[moduleImport] =
|
|
@@ -73,7 +70,6 @@ const addExternalResolverImport = (params, { result, config: { emitLegacyCommonJ
|
|
|
73
70
|
identifierUsages.push(identifierUsage);
|
|
74
71
|
}
|
|
75
72
|
};
|
|
76
|
-
exports.addExternalResolverImport = addExternalResolverImport;
|
|
77
73
|
const parseImportSyntax = ({ configImportSyntax, normalizedResolverName, }) => {
|
|
78
74
|
const isAbsoluteImport = configImportSyntax[0] === '~';
|
|
79
75
|
const importStringWithoutRelativity = isAbsoluteImport
|
|
@@ -82,7 +78,7 @@ const parseImportSyntax = ({ configImportSyntax, normalizedResolverName, }) => {
|
|
|
82
78
|
const [rawModuleName, importIdentifier] = importStringWithoutRelativity.split('#');
|
|
83
79
|
const moduleImport = isAbsoluteImport
|
|
84
80
|
? rawModuleName
|
|
85
|
-
:
|
|
81
|
+
: normalizeRelativePath(rawModuleName);
|
|
86
82
|
if (importIdentifier.startsWith('default')) {
|
|
87
83
|
if (!importIdentifier.startsWith('default as ')) {
|
|
88
84
|
throw new Error(`Invalid import syntax. "${configImportSyntax}": Default import must include identifier name e.g. moduleName#default as Identifier`);
|
|
@@ -127,4 +123,3 @@ const parseImportSyntax = ({ configImportSyntax, normalizedResolverName, }) => {
|
|
|
127
123
|
moduleImport,
|
|
128
124
|
};
|
|
129
125
|
};
|
|
130
|
-
//# sourceMappingURL=addExternalResolverImport.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type PropertyAssignment, type SourceFile } from 'ts-morph';
|
|
2
|
-
import type { ObjectTypeFile } from './types';
|
|
2
|
+
import type { ObjectTypeFile } from './types.js';
|
|
3
3
|
export type AddedPropertyAssignmentNodes = Record<string, // SourceFile's filename
|
|
4
4
|
Record<number, // Line number
|
|
5
5
|
{
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.addObjectTypeResolversPropertyAssignmentNodesIfNotImplemented = void 0;
|
|
4
|
-
const ts_morph_1 = require("ts-morph");
|
|
5
|
-
const getVariableStatementWithExpectedIdentifier_1 = require("./getVariableStatementWithExpectedIdentifier");
|
|
1
|
+
import { SyntaxKind } from 'ts-morph';
|
|
2
|
+
import { getVariableStatementWithExpectedIdentifier } from './getVariableStatementWithExpectedIdentifier.js';
|
|
6
3
|
/**
|
|
7
4
|
* Ensure objectTypeResolver files have all the resolvers due to mismatched types
|
|
8
5
|
*/
|
|
9
|
-
const addObjectTypeResolversPropertyAssignmentNodesIfNotImplemented = ({ addedPropertyAssignmentNodes, sourceFile, resolverFile, mode, }) => {
|
|
6
|
+
export const addObjectTypeResolversPropertyAssignmentNodesIfNotImplemented = ({ addedPropertyAssignmentNodes, sourceFile, resolverFile, mode, }) => {
|
|
10
7
|
const sourceFilePath = sourceFile.getFilePath().toString();
|
|
11
8
|
addedPropertyAssignmentNodes[sourceFilePath] =
|
|
12
9
|
addedPropertyAssignmentNodes[sourceFilePath] || {};
|
|
@@ -14,12 +11,12 @@ const addObjectTypeResolversPropertyAssignmentNodesIfNotImplemented = ({ addedPr
|
|
|
14
11
|
if (!Object.keys(resolversToGenerate).length) {
|
|
15
12
|
return;
|
|
16
13
|
}
|
|
17
|
-
const { variableStatement } =
|
|
14
|
+
const { variableStatement } = getVariableStatementWithExpectedIdentifier(sourceFile, resolverFile);
|
|
18
15
|
if (!variableStatement) {
|
|
19
16
|
throw new Error('Missing variableStatement in addObjectTypeResolversPropertyAssignmentNodesIfNotImplemented.');
|
|
20
17
|
}
|
|
21
18
|
// 1. Check to see which generated to-be-generated resolvers are implemented
|
|
22
|
-
const resolversData =
|
|
19
|
+
const resolversData = { ...resolversToGenerate };
|
|
23
20
|
/**
|
|
24
21
|
* PropertyAssignment
|
|
25
22
|
* ```
|
|
@@ -31,7 +28,7 @@ const addObjectTypeResolversPropertyAssignmentNodesIfNotImplemented = ({ addedPr
|
|
|
31
28
|
* ```
|
|
32
29
|
*/
|
|
33
30
|
variableStatement
|
|
34
|
-
.getDescendantsOfKind(
|
|
31
|
+
.getDescendantsOfKind(SyntaxKind.PropertyAssignment)
|
|
35
32
|
.forEach((propertyAssignment) => {
|
|
36
33
|
const resolverName = propertyAssignment.getName();
|
|
37
34
|
if (resolversData[resolverName]) {
|
|
@@ -47,7 +44,7 @@ const addObjectTypeResolversPropertyAssignmentNodesIfNotImplemented = ({ addedPr
|
|
|
47
44
|
* ```
|
|
48
45
|
*/
|
|
49
46
|
variableStatement
|
|
50
|
-
.getDescendantsOfKind(
|
|
47
|
+
.getDescendantsOfKind(SyntaxKind.MethodDeclaration)
|
|
51
48
|
.forEach((methodDeclaration) => {
|
|
52
49
|
const resolverName = methodDeclaration.getName();
|
|
53
50
|
if (resolversData[resolverName]) {
|
|
@@ -64,7 +61,7 @@ const addObjectTypeResolversPropertyAssignmentNodesIfNotImplemented = ({ addedPr
|
|
|
64
61
|
* ```
|
|
65
62
|
*/
|
|
66
63
|
variableStatement
|
|
67
|
-
.getDescendantsOfKind(
|
|
64
|
+
.getDescendantsOfKind(SyntaxKind.ShorthandPropertyAssignment)
|
|
68
65
|
.forEach((propertyAssignment) => {
|
|
69
66
|
const resolverName = propertyAssignment.getName();
|
|
70
67
|
if (resolversData[resolverName]) {
|
|
@@ -77,7 +74,7 @@ const addObjectTypeResolversPropertyAssignmentNodesIfNotImplemented = ({ addedPr
|
|
|
77
74
|
return;
|
|
78
75
|
}
|
|
79
76
|
const addedNode = variableStatement
|
|
80
|
-
.getDescendantsOfKind(
|
|
77
|
+
.getDescendantsOfKind(SyntaxKind.ObjectLiteralExpression)[0]
|
|
81
78
|
.addPropertyAssignment({
|
|
82
79
|
name: resolverName,
|
|
83
80
|
initializer: resolverDeclaration,
|
|
@@ -94,5 +91,3 @@ const addObjectTypeResolversPropertyAssignmentNodesIfNotImplemented = ({ addedPr
|
|
|
94
91
|
};
|
|
95
92
|
});
|
|
96
93
|
};
|
|
97
|
-
exports.addObjectTypeResolversPropertyAssignmentNodesIfNotImplemented = addObjectTypeResolversPropertyAssignmentNodesIfNotImplemented;
|
|
98
|
-
//# sourceMappingURL=addObjectTypeResolversPropertyAssignmentNodesIfNotImplemented.js.map
|
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.addResolverMainFiles = 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 { isRootObjectType, printImportLine, relativeModulePath, } from '../utils/index.js';
|
|
7
3
|
const createDefaultFileDetails = () => ({
|
|
8
4
|
importLines: [],
|
|
9
5
|
queryFields: [],
|
|
@@ -19,7 +15,7 @@ const createDefaultFileDetails = () => ({
|
|
|
19
15
|
* If resolverMainFileMode=modules, one file is generated for each module
|
|
20
16
|
* If no resolvers are created or imported, do not generate a file.
|
|
21
17
|
*/
|
|
22
|
-
const addResolverMainFiles = ({ config: { baseOutputDir, resolverTypesPath, resolverMainFile, resolverMainFileMode, emitLegacyCommonJSImports, importExtension, generatedTypesFileMeta: { generatedResolverTypes }, }, result, }) => {
|
|
18
|
+
export const addResolverMainFiles = ({ config: { baseOutputDir, resolverTypesPath, resolverMainFile, resolverMainFileMode, emitLegacyCommonJSImports, importExtension, generatedTypesFileMeta: { generatedResolverTypes }, }, result, }) => {
|
|
23
19
|
const baseIdentifierUsage = countBaseIdentifiersUsage(result.files);
|
|
24
20
|
const resolverMainFiles = Object.entries(result.files).reduce((res, [filepath, file]) => {
|
|
25
21
|
if (file.__filetype === 'file') {
|
|
@@ -48,9 +44,9 @@ const addResolverMainFiles = ({ config: { baseOutputDir, resolverTypesPath, reso
|
|
|
48
44
|
file.__filetype === 'unionResolver' ||
|
|
49
45
|
file.__filetype === 'scalarResolver' ||
|
|
50
46
|
file.__filetype === 'enumResolver') {
|
|
51
|
-
res[resolverMainFilename].importLines.push(
|
|
47
|
+
res[resolverMainFilename].importLines.push(printImportLine({
|
|
52
48
|
isTypeImport: false,
|
|
53
|
-
module:
|
|
49
|
+
module: relativeModulePath(outputDir, filepath),
|
|
54
50
|
moduleType: 'file',
|
|
55
51
|
namedImports: [fieldMapping],
|
|
56
52
|
emitLegacyCommonJSImports,
|
|
@@ -64,9 +60,9 @@ const addResolverMainFiles = ({ config: { baseOutputDir, resolverTypesPath, reso
|
|
|
64
60
|
return res;
|
|
65
61
|
}
|
|
66
62
|
// Root object fields
|
|
67
|
-
res[resolverMainFilename].importLines.push(
|
|
63
|
+
res[resolverMainFilename].importLines.push(printImportLine({
|
|
68
64
|
isTypeImport: false,
|
|
69
|
-
module:
|
|
65
|
+
module: relativeModulePath(outputDir, filepath),
|
|
70
66
|
moduleType: 'file',
|
|
71
67
|
namedImports: [fieldMapping],
|
|
72
68
|
emitLegacyCommonJSImports,
|
|
@@ -88,7 +84,7 @@ const addResolverMainFiles = ({ config: { baseOutputDir, resolverTypesPath, reso
|
|
|
88
84
|
if (!res[resolverMainFilename]) {
|
|
89
85
|
res[resolverMainFilename] = createDefaultFileDetails();
|
|
90
86
|
}
|
|
91
|
-
res[resolverMainFilename].importLines.push(
|
|
87
|
+
res[resolverMainFilename].importLines.push(printImportLine({
|
|
92
88
|
isTypeImport: false,
|
|
93
89
|
module,
|
|
94
90
|
moduleType: 'preserve',
|
|
@@ -110,7 +106,7 @@ const addResolverMainFiles = ({ config: { baseOutputDir, resolverTypesPath, reso
|
|
|
110
106
|
}
|
|
111
107
|
// 2+ parts, treat as 2 parts. This is a GraphQL ObjectType with field e.g. Query.me, Mutation.updateUser
|
|
112
108
|
const [rootObjectType, field] = resolverNameParts;
|
|
113
|
-
if (!
|
|
109
|
+
if (!isRootObjectType(rootObjectType)) {
|
|
114
110
|
throw new Error(`Unexpected root object type found: ${rootObjectType}`);
|
|
115
111
|
}
|
|
116
112
|
const fieldMapping = {
|
|
@@ -130,7 +126,7 @@ const addResolverMainFiles = ({ config: { baseOutputDir, resolverTypesPath, reso
|
|
|
130
126
|
const resolversTypeName = generatedResolverTypes.resolversMap.name;
|
|
131
127
|
Object.entries(resolverMainFiles).forEach(([resolverMainFilename, file]) => {
|
|
132
128
|
const outputDir = path.dirname(resolverMainFilename);
|
|
133
|
-
const relativePathToResolverTypes =
|
|
129
|
+
const relativePathToResolverTypes = relativeModulePath(outputDir, resolverTypesPath);
|
|
134
130
|
const queries = file.queryFields.length > 0
|
|
135
131
|
? `Query: { ${file.queryFields.map(printObjectMapping).join(',')} },`
|
|
136
132
|
: '';
|
|
@@ -154,7 +150,7 @@ const addResolverMainFiles = ({ config: { baseOutputDir, resolverTypesPath, reso
|
|
|
154
150
|
},
|
|
155
151
|
mainImportIdentifier: resolversIdentifier,
|
|
156
152
|
content: `/* This file was automatically generated. DO NOT UPDATE MANUALLY. */
|
|
157
|
-
${
|
|
153
|
+
${printImportLine({
|
|
158
154
|
isTypeImport: true,
|
|
159
155
|
module: relativePathToResolverTypes,
|
|
160
156
|
moduleType: 'file',
|
|
@@ -172,7 +168,6 @@ const addResolverMainFiles = ({ config: { baseOutputDir, resolverTypesPath, reso
|
|
|
172
168
|
};
|
|
173
169
|
});
|
|
174
170
|
};
|
|
175
|
-
exports.addResolverMainFiles = addResolverMainFiles;
|
|
176
171
|
const printObjectMapping = ({ propertyName, identifierName, }) => `${propertyName}: ${identifierName}`;
|
|
177
172
|
const pushToObjectTypes = ({ objectTypes, property, value, }) => {
|
|
178
173
|
if (!objectTypes[property]) {
|
|
@@ -225,4 +220,3 @@ const countBaseIdentifiersUsage = (files) => {
|
|
|
225
220
|
const makeNormalizedResolverNameVariableCompatible = (identifier) => {
|
|
226
221
|
return identifier.replace(/[-.]/g, '_');
|
|
227
222
|
};
|
|
228
|
-
//# sourceMappingURL=addResolverMainFiles.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { type SourceFile } from 'ts-morph';
|
|
2
|
-
import type { EnumResolverFile } from './types';
|
|
2
|
+
import type { EnumResolverFile } from './types.js';
|
|
3
3
|
export declare const ensureEnumTypeResolversAreGenerated: (sourceFile: SourceFile, resolverFile: EnumResolverFile) => void;
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
const getVariableStatementWithExpectedIdentifier_1 = require("./getVariableStatementWithExpectedIdentifier");
|
|
6
|
-
const ensureEnumTypeResolversAreGenerated = (sourceFile, resolverFile) => {
|
|
7
|
-
const { variableStatement } = (0, getVariableStatementWithExpectedIdentifier_1.getVariableStatementWithExpectedIdentifier)(sourceFile, resolverFile);
|
|
1
|
+
import { SyntaxKind } from 'ts-morph';
|
|
2
|
+
import { getVariableStatementWithExpectedIdentifier } from './getVariableStatementWithExpectedIdentifier.js';
|
|
3
|
+
export const ensureEnumTypeResolversAreGenerated = (sourceFile, resolverFile) => {
|
|
4
|
+
const { variableStatement } = getVariableStatementWithExpectedIdentifier(sourceFile, resolverFile);
|
|
8
5
|
if (!variableStatement) {
|
|
9
6
|
throw new Error('Missing variableStatement in ensureEnumTypeResolversAreGenerated.');
|
|
10
7
|
}
|
|
@@ -14,7 +11,7 @@ const ensureEnumTypeResolversAreGenerated = (sourceFile, resolverFile) => {
|
|
|
14
11
|
}, {});
|
|
15
12
|
// Mark allowed value as implemented if found
|
|
16
13
|
variableStatement
|
|
17
|
-
.getDescendantsOfKind(
|
|
14
|
+
.getDescendantsOfKind(SyntaxKind.PropertyAssignment)
|
|
18
15
|
.forEach((propertyAssignment) => {
|
|
19
16
|
const propertyName = propertyAssignment.getName();
|
|
20
17
|
if (allowedValuesMap[propertyName]) {
|
|
@@ -25,7 +22,7 @@ const ensureEnumTypeResolversAreGenerated = (sourceFile, resolverFile) => {
|
|
|
25
22
|
Object.entries(allowedValuesMap).forEach(([allowedValue, { implemented }]) => {
|
|
26
23
|
if (!implemented) {
|
|
27
24
|
variableStatement
|
|
28
|
-
.getDescendantsOfKind(
|
|
25
|
+
.getDescendantsOfKind(SyntaxKind.ObjectLiteralExpression)[0]
|
|
29
26
|
.addPropertyAssignment({
|
|
30
27
|
name: allowedValue,
|
|
31
28
|
initializer: `'${allowedValue}'`,
|
|
@@ -34,5 +31,3 @@ const ensureEnumTypeResolversAreGenerated = (sourceFile, resolverFile) => {
|
|
|
34
31
|
}
|
|
35
32
|
});
|
|
36
33
|
};
|
|
37
|
-
exports.ensureEnumTypeResolversAreGenerated = ensureEnumTypeResolversAreGenerated;
|
|
38
|
-
//# sourceMappingURL=ensureEnumTypeResolversAreGenerated.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { GenerateResolverFilesContext } from './types';
|
|
1
|
+
import type { GenerateResolverFilesContext } from './types.js';
|
|
2
2
|
export declare const generateResolverFiles: (ctx: GenerateResolverFilesContext) => void;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { addResolverMainFiles } from './addResolverMainFiles.js';
|
|
2
|
+
import { postProcessFiles } from './postProcessFiles.js';
|
|
3
|
+
import { handleGraphQLRootObjectTypeField } from './handleGraphQLRootObjectTypeField.js';
|
|
4
|
+
import { handleGraphQLObjectType } from './handleGraphQLObjectType.js';
|
|
5
|
+
import { handleGraphQLUnionType } from './handleGraphQLUnionType.js';
|
|
6
|
+
import { handleGraphQLScalarType } from './handleGraphQLScalarType.js';
|
|
7
|
+
import { handleGraphQLInterfaceType } from './handleGraphQLInterfaceType.js';
|
|
8
|
+
import { handleGraphQLEnumType } from './handleGraphQLEnumType.js';
|
|
9
|
+
import { visitNamedType } from './visitNamedType.js';
|
|
10
|
+
export const generateResolverFiles = (ctx) => {
|
|
11
|
+
// Query
|
|
12
|
+
Object.values(ctx.config.parsedGraphQLSchemaMeta.userDefinedSchemaTypeMap.query).forEach((details) => {
|
|
13
|
+
visitNamedType({
|
|
14
|
+
...details,
|
|
15
|
+
belongsToRootObject: 'Query',
|
|
16
|
+
visitor: handleGraphQLRootObjectTypeField,
|
|
17
|
+
}, ctx);
|
|
18
|
+
});
|
|
19
|
+
// Mutation
|
|
20
|
+
Object.values(ctx.config.parsedGraphQLSchemaMeta.userDefinedSchemaTypeMap.mutation).forEach((details) => {
|
|
21
|
+
visitNamedType({
|
|
22
|
+
...details,
|
|
23
|
+
belongsToRootObject: 'Mutation',
|
|
24
|
+
visitor: handleGraphQLRootObjectTypeField,
|
|
25
|
+
}, ctx);
|
|
26
|
+
});
|
|
27
|
+
// Subscription
|
|
28
|
+
Object.values(ctx.config.parsedGraphQLSchemaMeta.userDefinedSchemaTypeMap.subscription).forEach((details) => {
|
|
29
|
+
visitNamedType({
|
|
30
|
+
...details,
|
|
31
|
+
belongsToRootObject: 'Subscription',
|
|
32
|
+
visitor: handleGraphQLRootObjectTypeField,
|
|
33
|
+
}, ctx);
|
|
34
|
+
});
|
|
35
|
+
// Object
|
|
36
|
+
Object.values(ctx.config.parsedGraphQLSchemaMeta.userDefinedSchemaTypeMap.object).forEach((objectsByModules) => {
|
|
37
|
+
Object.values(objectsByModules).forEach((details) => {
|
|
38
|
+
visitNamedType({
|
|
39
|
+
...details,
|
|
40
|
+
belongsToRootObject: null,
|
|
41
|
+
visitor: (baseParams, prev_ctx) => handleGraphQLObjectType({
|
|
42
|
+
...baseParams,
|
|
43
|
+
fieldsToPick: details.fieldsToPick,
|
|
44
|
+
}, prev_ctx),
|
|
45
|
+
}, ctx);
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
// Scalar
|
|
49
|
+
Object.values(ctx.config.parsedGraphQLSchemaMeta.userDefinedSchemaTypeMap.scalar).forEach((details) => {
|
|
50
|
+
visitNamedType({
|
|
51
|
+
...details,
|
|
52
|
+
belongsToRootObject: null,
|
|
53
|
+
visitor: handleGraphQLScalarType,
|
|
54
|
+
}, ctx);
|
|
55
|
+
});
|
|
56
|
+
// Interface
|
|
57
|
+
Object.values(ctx.config.parsedGraphQLSchemaMeta.userDefinedSchemaTypeMap.interface).forEach((details) => {
|
|
58
|
+
visitNamedType({
|
|
59
|
+
...details,
|
|
60
|
+
belongsToRootObject: null,
|
|
61
|
+
visitor: handleGraphQLInterfaceType,
|
|
62
|
+
}, ctx);
|
|
63
|
+
});
|
|
64
|
+
// Union
|
|
65
|
+
Object.values(ctx.config.parsedGraphQLSchemaMeta.userDefinedSchemaTypeMap.union).forEach((details) => {
|
|
66
|
+
visitNamedType({
|
|
67
|
+
...details,
|
|
68
|
+
belongsToRootObject: null,
|
|
69
|
+
visitor: handleGraphQLUnionType,
|
|
70
|
+
}, ctx);
|
|
71
|
+
});
|
|
72
|
+
// Enum
|
|
73
|
+
Object.values(ctx.config.parsedGraphQLSchemaMeta.userDefinedSchemaTypeMap.enum).forEach((details) => {
|
|
74
|
+
visitNamedType({
|
|
75
|
+
...details,
|
|
76
|
+
belongsToRootObject: null,
|
|
77
|
+
visitor: (baseParams, prev_ctx) => handleGraphQLEnumType({
|
|
78
|
+
...baseParams,
|
|
79
|
+
allowedValues: details.allowedValues,
|
|
80
|
+
}, prev_ctx),
|
|
81
|
+
}, ctx);
|
|
82
|
+
});
|
|
83
|
+
// Post process generated files (could be existing files or files to be generated)
|
|
84
|
+
postProcessFiles(ctx);
|
|
85
|
+
// Put all resolvers into barrel file/s (or main file/s)
|
|
86
|
+
addResolverMainFiles(ctx);
|
|
87
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ImportDeclaration, SourceFile } from 'ts-morph';
|
|
2
|
-
import type { ResolverFile } from './types';
|
|
2
|
+
import type { ResolverFile } from './types.js';
|
|
3
3
|
export declare const getImportStatementWithExpectedNamedImport: (sourceFile: SourceFile, resolverFile: ResolverFile) => {
|
|
4
4
|
importDeclaration: ImportDeclaration | undefined;
|
|
5
5
|
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export const getImportStatementWithExpectedNamedImport = (sourceFile, resolverFile) => {
|
|
2
|
+
const importDeclaration = sourceFile.getImportDeclaration((declaration) => {
|
|
3
|
+
let foundNamedImport = false;
|
|
4
|
+
declaration.getNamedImports().forEach((namedImport) => {
|
|
5
|
+
if (namedImport.getName() === resolverFile.meta.resolverType?.baseImport) {
|
|
6
|
+
foundNamedImport = true;
|
|
7
|
+
}
|
|
8
|
+
});
|
|
9
|
+
return foundNamedImport;
|
|
10
|
+
});
|
|
11
|
+
return {
|
|
12
|
+
importDeclaration,
|
|
13
|
+
};
|
|
14
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { SourceFile, VariableStatement } from 'ts-morph';
|
|
2
|
-
import type { ResolverFile } from './types';
|
|
2
|
+
import type { ResolverFile } from './types.js';
|
|
3
3
|
export declare const getVariableStatementWithExpectedIdentifier: (sourceFile: SourceFile, resolverFile: ResolverFile) => {
|
|
4
4
|
variableStatement: VariableStatement | undefined;
|
|
5
5
|
isExported: boolean;
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getVariableStatementWithExpectedIdentifier = void 0;
|
|
4
|
-
const getVariableStatementWithExpectedIdentifier = (sourceFile, resolverFile) => {
|
|
1
|
+
export const getVariableStatementWithExpectedIdentifier = (sourceFile, resolverFile) => {
|
|
5
2
|
let isExported = false;
|
|
6
3
|
const variableStatementWithExpectedIdentifier = sourceFile.getVariableStatement((statement) => {
|
|
7
4
|
let hasExpectedIdentifier = false;
|
|
@@ -23,5 +20,3 @@ const getVariableStatementWithExpectedIdentifier = (sourceFile, resolverFile) =>
|
|
|
23
20
|
isExported,
|
|
24
21
|
};
|
|
25
22
|
};
|
|
26
|
-
exports.getVariableStatementWithExpectedIdentifier = getVariableStatementWithExpectedIdentifier;
|
|
27
|
-
//# sourceMappingURL=getVariableStatementWithExpectedIdentifier.js.map
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const utils_1 = require("../utils");
|
|
5
|
-
const handleGraphQLEnumType = ({ fieldFilePath, relativePathFromBaseToModule, resolverName, isFileAlreadyOnFilesystem, normalizedResolverName, resolversTypeMeta, moduleName, allowedValues, }, { result, config: { typeMappersMap, resolverGeneration, emitLegacyCommonJSImports, importExtension }, }) => {
|
|
6
|
-
const matchedPatternToGenerate = (0, utils_1.isMatchResolverNamePattern)({
|
|
1
|
+
import { isMatchResolverNamePattern, logger, printImportLine, } from '../utils/index.js';
|
|
2
|
+
export const handleGraphQLEnumType = ({ fieldFilePath, relativePathFromBaseToModule, resolverName, isFileAlreadyOnFilesystem, normalizedResolverName, resolversTypeMeta, moduleName, allowedValues, }, { result, config: { typeMappersMap, resolverGeneration, emitLegacyCommonJSImports, importExtension, }, }) => {
|
|
3
|
+
const matchedPatternToGenerate = isMatchResolverNamePattern({
|
|
7
4
|
pattern: resolverGeneration.enum,
|
|
8
5
|
value: normalizedResolverName.withModule,
|
|
9
6
|
});
|
|
@@ -11,12 +8,12 @@ const handleGraphQLEnumType = ({ fieldFilePath, relativePathFromBaseToModule, re
|
|
|
11
8
|
if (!matchedPatternToGenerate &&
|
|
12
9
|
!mapperDetails &&
|
|
13
10
|
!isFileAlreadyOnFilesystem) {
|
|
14
|
-
|
|
11
|
+
logger.debug(`Skipped Enum resolver generation: "${normalizedResolverName.withModule}". Pattern: "${resolverGeneration.enum}".`);
|
|
15
12
|
return;
|
|
16
13
|
}
|
|
17
14
|
const forcedGenerationWarning = (() => {
|
|
18
15
|
if (!matchedPatternToGenerate && mapperDetails) {
|
|
19
|
-
|
|
16
|
+
logger.debug(`Enum resolver generation was NOT skipped because there is a associated mapper: "${normalizedResolverName.withModule}". "Pattern: ${resolverGeneration.enum}". Mapper: ${mapperDetails.mapper.name}`);
|
|
20
17
|
return `/*
|
|
21
18
|
* Note: This enum file is generated because "${mapperDetails.mapper.name}" is declared. This is to ensure runtime safety.
|
|
22
19
|
* If you want to skip this file generation, remove the mapper or update the pattern in the \`resolverGeneration.object\` config.
|
|
@@ -24,7 +21,7 @@ const handleGraphQLEnumType = ({ fieldFilePath, relativePathFromBaseToModule, re
|
|
|
24
21
|
}
|
|
25
22
|
return '';
|
|
26
23
|
})();
|
|
27
|
-
const resolverTypeImportDeclaration =
|
|
24
|
+
const resolverTypeImportDeclaration = printImportLine({
|
|
28
25
|
isTypeImport: true,
|
|
29
26
|
module: resolversTypeMeta.module,
|
|
30
27
|
moduleType: resolversTypeMeta.moduleType,
|
|
@@ -59,5 +56,3 @@ const handleGraphQLEnumType = ({ fieldFilePath, relativePathFromBaseToModule, re
|
|
|
59
56
|
},
|
|
60
57
|
};
|
|
61
58
|
};
|
|
62
|
-
exports.handleGraphQLEnumType = handleGraphQLEnumType;
|
|
63
|
-
//# sourceMappingURL=handleGraphQLEnumType.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { GraphQLTypeHandler } from './types';
|
|
1
|
+
import type { GraphQLTypeHandler } from './types.js';
|
|
2
2
|
export declare const handleGraphQLInterfaceType: GraphQLTypeHandler;
|