@eddeee888/gcg-typescript-resolver-files 0.6.0 → 0.7.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/README.md +23 -0
- package/package.json +2 -2
- package/src/addVirtualTypesFileToTsMorphProject/addVirtualTypesFileToTsMorphProject.d.ts +3 -1
- package/src/addVirtualTypesFileToTsMorphProject/addVirtualTypesFileToTsMorphProject.js +27 -7
- package/src/addVirtualTypesFileToTsMorphProject/addVirtualTypesFileToTsMorphProject.js.map +1 -1
- package/src/generateResolverFiles/addExternalResolverImport.d.ts +7 -0
- package/src/generateResolverFiles/addExternalResolverImport.js +39 -17
- package/src/generateResolverFiles/addExternalResolverImport.js.map +1 -1
- package/src/generateResolverFiles/addResolverMainFiles.js +65 -18
- package/src/generateResolverFiles/addResolverMainFiles.js.map +1 -1
- package/src/generateResolverFiles/generateResolverFiles.js +39 -0
- package/src/generateResolverFiles/generateResolverFiles.js.map +1 -1
- package/src/generateResolverFiles/getVariableStatementWithExpectedIdentifier.js +14 -0
- package/src/generateResolverFiles/getVariableStatementWithExpectedIdentifier.js.map +1 -1
- package/src/generateResolverFiles/handleGraphQLInterfaceType.js +3 -1
- package/src/generateResolverFiles/handleGraphQLInterfaceType.js.map +1 -1
- package/src/generateResolverFiles/handleGraphQLObjectType.d.ts +3 -1
- package/src/generateResolverFiles/handleGraphQLObjectType.js +24 -4
- package/src/generateResolverFiles/handleGraphQLObjectType.js.map +1 -1
- package/src/generateResolverFiles/handleGraphQLRootObjectTypeField.js +5 -3
- package/src/generateResolverFiles/handleGraphQLRootObjectTypeField.js.map +1 -1
- package/src/generateResolverFiles/handleGraphQLScalarType.js +1 -0
- package/src/generateResolverFiles/handleGraphQLScalarType.js.map +1 -1
- package/src/generateResolverFiles/handleGraphQLUnionType.js +1 -0
- package/src/generateResolverFiles/handleGraphQLUnionType.js.map +1 -1
- package/src/generateResolverFiles/types.d.ts +10 -6
- package/src/generateResolverFiles/visitNamedType.d.ts +5 -1
- package/src/generateResolverFiles/visitNamedType.js +27 -10
- package/src/generateResolverFiles/visitNamedType.js.map +1 -1
- package/src/normalizeAddConfigPath/index.d.ts +1 -0
- package/src/normalizeAddConfigPath/index.js +5 -0
- package/src/normalizeAddConfigPath/index.js.map +1 -0
- package/src/normalizeAddConfigPath/normalizeAddConfigPath.d.ts +11 -0
- package/src/normalizeAddConfigPath/normalizeAddConfigPath.js +22 -0
- package/src/normalizeAddConfigPath/normalizeAddConfigPath.js.map +1 -0
- package/src/preset.js +16 -3
- package/src/preset.js.map +1 -1
- package/src/validatePresetConfig/validatePresetConfig.d.ts +6 -2
- package/src/validatePresetConfig/validatePresetConfig.js +22 -2
- package/src/validatePresetConfig/validatePresetConfig.js.map +1 -1
package/README.md
CHANGED
|
@@ -169,6 +169,29 @@ If `typeDefsFileMode=merged` or `typeDefsFileMode=mergedWhitelisted`, this path
|
|
|
169
169
|
|
|
170
170
|
If `typeDefsFileMode=modules`, this path is relative from each module directory.
|
|
171
171
|
|
|
172
|
+
### add
|
|
173
|
+
|
|
174
|
+
`Record<string, (@graphql-codegen/add).AddPluginConfig>` (Default: `undefined`) (EXPERIMENTAL)
|
|
175
|
+
|
|
176
|
+
Allows using [add](https://the-guild.dev/graphql/codegen/plugins/other/add) plugin on a given file.
|
|
177
|
+
|
|
178
|
+
Note: Currently only supports `resolverTypesPath` file i.e. `types.generated.ts`
|
|
179
|
+
|
|
180
|
+
Example:
|
|
181
|
+
|
|
182
|
+
```ts
|
|
183
|
+
// codegen.ts
|
|
184
|
+
{
|
|
185
|
+
generates: {
|
|
186
|
+
'src/schema': defineConfig({
|
|
187
|
+
add: {
|
|
188
|
+
'./types.generated.ts': { content: '/* eslint-disable */' },
|
|
189
|
+
},
|
|
190
|
+
})
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
```
|
|
194
|
+
|
|
172
195
|
### whitelistedModules
|
|
173
196
|
|
|
174
197
|
`Array<string>` (Only works with `config.mode=modules`)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eddeee888/gcg-typescript-resolver-files",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/eddeee888/graphql-code-generator-plugins.git",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"graphql": "^15.0.0 || ^16.0.0"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@eddeee888/gcg-server-config": "0.0
|
|
30
|
+
"@eddeee888/gcg-server-config": "0.1.0",
|
|
31
31
|
"@graphql-codegen/add": "^5.0.0",
|
|
32
32
|
"@graphql-codegen/plugin-helpers": "^5.0.0",
|
|
33
33
|
"@graphql-codegen/typescript": "^4.0.0",
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import type { AddPluginConfig } from '@graphql-codegen/add/typings/config';
|
|
1
2
|
import type { GraphQLSchema } from 'graphql';
|
|
2
3
|
import { type SourceFile, Project } from 'ts-morph';
|
|
3
4
|
import type { ServerConfig } from '@eddeee888/gcg-server-config';
|
|
4
|
-
export declare const addVirtualTypesFileToTsMorphProject: ({ tsMorphProject, schemaAst, resolverTypesPath, resolverTypesConfig, }: {
|
|
5
|
+
export declare const addVirtualTypesFileToTsMorphProject: ({ tsMorphProject, schemaAst, resolverTypesPath, resolverTypesConfig, addConfig, }: {
|
|
5
6
|
tsMorphProject: Project;
|
|
6
7
|
schemaAst: GraphQLSchema;
|
|
7
8
|
resolverTypesPath: string;
|
|
8
9
|
resolverTypesConfig: ServerConfig;
|
|
10
|
+
addConfig?: AddPluginConfig | undefined;
|
|
9
11
|
}) => Promise<SourceFile>;
|
|
@@ -2,13 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.addVirtualTypesFileToTsMorphProject = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
+
const addPlugin = require("@graphql-codegen/add");
|
|
5
6
|
const typeScriptPlugin = require("@graphql-codegen/typescript");
|
|
6
7
|
const typeScriptResolversPlugin = require("@graphql-codegen/typescript-resolvers");
|
|
7
|
-
const addVirtualTypesFileToTsMorphProject = ({ tsMorphProject, schemaAst, resolverTypesPath, resolverTypesConfig, }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
8
|
+
const addVirtualTypesFileToTsMorphProject = ({ tsMorphProject, schemaAst, resolverTypesPath, resolverTypesConfig, addConfig, }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
8
9
|
const typesFile = yield generateVirtualTypesFile({
|
|
9
10
|
schemaAst,
|
|
10
11
|
resolverTypesPath,
|
|
11
12
|
resolverTypesConfig,
|
|
13
|
+
addConfig,
|
|
12
14
|
});
|
|
13
15
|
const typesSourceFile = tsMorphProject.createSourceFile(typesFile.filePath, typesFile.content, { overwrite: true });
|
|
14
16
|
return typesSourceFile;
|
|
@@ -18,18 +20,36 @@ exports.addVirtualTypesFileToTsMorphProject = addVirtualTypesFileToTsMorphProjec
|
|
|
18
20
|
* getVirtualTypesFile generates a virtual types.generated.ts file
|
|
19
21
|
* This is used to statically detect and compare types in the parse and post-process steps
|
|
20
22
|
*/
|
|
21
|
-
const generateVirtualTypesFile = ({ schemaAst, resolverTypesPath, resolverTypesConfig, }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
22
|
-
var _a, _b;
|
|
23
|
-
const [typescriptResult, typescriptResolversResult] = yield Promise.all([
|
|
23
|
+
const generateVirtualTypesFile = ({ schemaAst, resolverTypesPath, resolverTypesConfig, addConfig, }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
24
|
+
var _a, _b, _c, _d;
|
|
25
|
+
const [typescriptResult, typescriptResolversResult, addResult] = yield Promise.all([
|
|
24
26
|
typeScriptPlugin.plugin(schemaAst, [], resolverTypesConfig),
|
|
25
27
|
typeScriptResolversPlugin.plugin(schemaAst, [], resolverTypesConfig),
|
|
28
|
+
addConfig ? addPlugin.plugin(schemaAst, [], addConfig) : '',
|
|
26
29
|
]);
|
|
30
|
+
const addResultAsComplextOutput = convertPluginOutputToComplextPluginOutput(addResult);
|
|
27
31
|
return {
|
|
28
32
|
filePath: resolverTypesPath,
|
|
29
33
|
content: `
|
|
30
|
-
${(_a =
|
|
31
|
-
${(_b =
|
|
32
|
-
${
|
|
34
|
+
${(_a = addResultAsComplextOutput.prepend) === null || _a === void 0 ? void 0 : _a.join('\n')}
|
|
35
|
+
${(_b = typescriptResult.prepend) === null || _b === void 0 ? void 0 : _b.join('\n')}
|
|
36
|
+
${(_c = typescriptResolversResult.prepend) === null || _c === void 0 ? void 0 : _c.join('\n')}
|
|
37
|
+
${typescriptResult.content}
|
|
38
|
+
${typescriptResolversResult.content}
|
|
39
|
+
${addResultAsComplextOutput.content}
|
|
40
|
+
${(_d = addResultAsComplextOutput.append) === null || _d === void 0 ? void 0 : _d.join('\n')}
|
|
41
|
+
`,
|
|
33
42
|
};
|
|
34
43
|
});
|
|
44
|
+
const convertPluginOutputToComplextPluginOutput = (output) => {
|
|
45
|
+
if (typeof output === 'string') {
|
|
46
|
+
return {
|
|
47
|
+
content: output || '',
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
if (Array.isArray(output.content)) {
|
|
51
|
+
output.content = output.content.join('\n');
|
|
52
|
+
}
|
|
53
|
+
return output;
|
|
54
|
+
};
|
|
35
55
|
//# sourceMappingURL=addVirtualTypesFileToTsMorphProject.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addVirtualTypesFileToTsMorphProject.js","sourceRoot":"","sources":["../../../../../packages/typescript-resolver-files/src/addVirtualTypesFileToTsMorphProject/addVirtualTypesFileToTsMorphProject.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"addVirtualTypesFileToTsMorphProject.js","sourceRoot":"","sources":["../../../../../packages/typescript-resolver-files/src/addVirtualTypesFileToTsMorphProject/addVirtualTypesFileToTsMorphProject.ts"],"names":[],"mappings":";;;;AACA,kDAAkD;AAElD,gEAAgE;AAChE,mFAAmF;AAK5E,MAAM,mCAAmC,GAAG,CAAO,EACxD,cAAc,EACd,SAAS,EACT,iBAAiB,EACjB,mBAAmB,EACnB,SAAS,GAOV,EAAuB,EAAE;IACxB,MAAM,SAAS,GAAG,MAAM,wBAAwB,CAAC;QAC/C,SAAS;QACT,iBAAiB;QACjB,mBAAmB;QACnB,SAAS;KACV,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,cAAc,CAAC,gBAAgB,CACrD,SAAS,CAAC,QAAQ,EAClB,SAAS,CAAC,OAAO,EACjB,EAAE,SAAS,EAAE,IAAI,EAAE,CACpB,CAAC;IAEF,OAAO,eAAe,CAAC;AACzB,CAAC,CAAA,CAAC;AA3BW,QAAA,mCAAmC,uCA2B9C;AAEF;;;GAGG;AACH,MAAM,wBAAwB,GAAG,CAAO,EACtC,SAAS,EACT,iBAAiB,EACjB,mBAAmB,EACnB,SAAS,GAMV,EAGE,EAAE;;IACH,MAAM,CAAC,gBAAgB,EAAE,yBAAyB,EAAE,SAAS,CAAC,GAC5D,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,gBAAgB,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,EAAE,mBAAmB,CAAC;QAC3D,yBAAyB,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,EAAE,mBAAmB,CAAC;QACpE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;KAC5D,CAAC,CAAC;IAEL,MAAM,yBAAyB,GAC7B,yCAAyC,CAAC,SAAS,CAAC,CAAC;IAEvD,OAAO;QACL,QAAQ,EAAE,iBAAiB;QAC3B,OAAO,EAAE;MACP,MAAA,yBAAyB,CAAC,OAAO,0CAAE,IAAI,CAAC,IAAI,CAAC;MAC7C,MAAA,gBAAgB,CAAC,OAAO,0CAAE,IAAI,CAAC,IAAI,CAAC;MACpC,MAAA,yBAAyB,CAAC,OAAO,0CAAE,IAAI,CAAC,IAAI,CAAC;MAC7C,gBAAgB,CAAC,OAAO;MACxB,yBAAyB,CAAC,OAAO;MACjC,yBAAyB,CAAC,OAAO;MACjC,MAAA,yBAAyB,CAAC,MAAM,0CAAE,IAAI,CAAC,IAAI,CAAC;KAC7C;KACF,CAAC;AACJ,CAAC,CAAA,CAAC;AAEF,MAAM,yCAAyC,GAAG,CAChD,MAA0B,EACC,EAAE;IAC7B,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QAC9B,OAAO;YACL,OAAO,EAAE,MAAM,IAAI,EAAE;SACtB,CAAC;KACH;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;QACjC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC5C;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
|
|
@@ -4,5 +4,12 @@ interface AddExternalResolverImportParams {
|
|
|
4
4
|
normalizedResolverName: string;
|
|
5
5
|
configImportSyntax: string;
|
|
6
6
|
}
|
|
7
|
+
/**
|
|
8
|
+
* addExternalResolverImport
|
|
9
|
+
*
|
|
10
|
+
* 1. parse external resolvers (originally from config.externalResolvers) import syntax
|
|
11
|
+
* 2. dedupes any duplicated imports
|
|
12
|
+
* 3. declares the which identifier name to use for GraphQL object or resolver in identifierUsages
|
|
13
|
+
*/
|
|
7
14
|
export declare const addExternalResolverImport: (params: AddExternalResolverImportParams, { result, config: { emitLegacyCommonJSImports }, }: GenerateResolverFilesContext) => void;
|
|
8
15
|
export {};
|
|
@@ -2,11 +2,19 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.addExternalResolverImport = void 0;
|
|
4
4
|
const utils_1 = require("../utils");
|
|
5
|
+
/**
|
|
6
|
+
* addExternalResolverImport
|
|
7
|
+
*
|
|
8
|
+
* 1. parse external resolvers (originally from config.externalResolvers) import syntax
|
|
9
|
+
* 2. dedupes any duplicated imports
|
|
10
|
+
* 3. declares the which identifier name to use for GraphQL object or resolver in identifierUsages
|
|
11
|
+
*/
|
|
5
12
|
const addExternalResolverImport = (params, { result, config: { emitLegacyCommonJSImports }, }) => {
|
|
6
13
|
const { importIdentifier, identifierUsage, moduleImport } = parseImportSyntax(params);
|
|
14
|
+
let shouldPushIndentifierUsages = false;
|
|
7
15
|
result.externalImports[moduleImport] =
|
|
8
16
|
result.externalImports[moduleImport] ||
|
|
9
|
-
{
|
|
17
|
+
({
|
|
10
18
|
moduleName: params.moduleName,
|
|
11
19
|
importLineMeta: {
|
|
12
20
|
isTypeImport: false,
|
|
@@ -17,33 +25,47 @@ const addExternalResolverImport = (params, { result, config: { emitLegacyCommonJ
|
|
|
17
25
|
emitLegacyCommonJSImports,
|
|
18
26
|
},
|
|
19
27
|
identifierUsages: [],
|
|
20
|
-
};
|
|
21
|
-
const
|
|
28
|
+
});
|
|
29
|
+
const { importLineMeta, identifierUsages } = result.externalImports[moduleImport];
|
|
22
30
|
switch (importIdentifier.__type) {
|
|
23
31
|
case 'default':
|
|
24
|
-
if (
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
throw new Error(`There can be only one default import from '${moduleImport}'. Current: ${externalImport.importLineMeta.defaultImport}. New: ${importIdentifier.defaultImport}`);
|
|
32
|
+
if (importLineMeta.defaultImport &&
|
|
33
|
+
importLineMeta.defaultImport !== importIdentifier.defaultImport) {
|
|
34
|
+
throw new Error(`There can be only one default import from '${moduleImport}'. Current: ${importLineMeta.defaultImport}. New: ${importIdentifier.defaultImport}`);
|
|
28
35
|
}
|
|
29
|
-
|
|
30
|
-
|
|
36
|
+
importLineMeta.defaultImport = importIdentifier.defaultImport;
|
|
37
|
+
shouldPushIndentifierUsages = true;
|
|
31
38
|
break;
|
|
32
|
-
case 'named':
|
|
33
|
-
|
|
39
|
+
case 'named': {
|
|
40
|
+
const foundSameImport = importLineMeta.namedImports.find((existingImport) => typeof existingImport === 'string' &&
|
|
41
|
+
existingImport === importIdentifier.namedImport);
|
|
42
|
+
if (!foundSameImport) {
|
|
43
|
+
importLineMeta.namedImports.push(importIdentifier.namedImport);
|
|
44
|
+
shouldPushIndentifierUsages = true;
|
|
45
|
+
}
|
|
34
46
|
break;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
identifierName
|
|
39
|
-
|
|
47
|
+
}
|
|
48
|
+
case 'namedWithAlias': {
|
|
49
|
+
const foundSameImport = importLineMeta.namedImports.find((existingImport) => typeof existingImport === 'object' &&
|
|
50
|
+
existingImport.identifierName === importIdentifier.identifierName &&
|
|
51
|
+
existingImport.propertyName === importIdentifier.propertyName);
|
|
52
|
+
if (!foundSameImport) {
|
|
53
|
+
importLineMeta.namedImports.push({
|
|
54
|
+
propertyName: importIdentifier.propertyName,
|
|
55
|
+
identifierName: importIdentifier.identifierName,
|
|
56
|
+
});
|
|
57
|
+
shouldPushIndentifierUsages = true;
|
|
58
|
+
}
|
|
40
59
|
break;
|
|
60
|
+
}
|
|
41
61
|
default:
|
|
42
62
|
// importIdentifier is `never` unless new __type is added
|
|
43
63
|
// i.e. this is here for typesafety
|
|
44
64
|
return importIdentifier;
|
|
45
65
|
}
|
|
46
|
-
|
|
66
|
+
if (shouldPushIndentifierUsages) {
|
|
67
|
+
identifierUsages.push(identifierUsage);
|
|
68
|
+
}
|
|
47
69
|
};
|
|
48
70
|
exports.addExternalResolverImport = addExternalResolverImport;
|
|
49
71
|
const parseImportSyntax = ({ configImportSyntax, normalizedResolverName, }) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addExternalResolverImport.js","sourceRoot":"","sources":["../../../../../packages/typescript-resolver-files/src/generateResolverFiles/addExternalResolverImport.ts"],"names":[],"mappings":";;;AAAA,oCAAiD;
|
|
1
|
+
{"version":3,"file":"addExternalResolverImport.js","sourceRoot":"","sources":["../../../../../packages/typescript-resolver-files/src/generateResolverFiles/addExternalResolverImport.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ const createDefaultFileDetails = () => ({
|
|
|
8
8
|
queryFields: [],
|
|
9
9
|
mutationFields: [],
|
|
10
10
|
subscriptionFields: [],
|
|
11
|
-
objectTypes:
|
|
11
|
+
objectTypes: {},
|
|
12
12
|
});
|
|
13
13
|
/**
|
|
14
14
|
* addResolverMainFiles
|
|
@@ -19,6 +19,7 @@ const createDefaultFileDetails = () => ({
|
|
|
19
19
|
* If no resolvers are created or imported, do not generate a file.
|
|
20
20
|
*/
|
|
21
21
|
const addResolverMainFiles = ({ config: { baseOutputDir, resolverTypesPath, resolverMainFile, resolverMainFileMode, emitLegacyCommonJSImports, }, result, }) => {
|
|
22
|
+
const baseIdentifierUsage = countBaseIdentifiersUsage(result.files);
|
|
22
23
|
const resolverMainFiles = Object.entries(result.files).reduce((res, [filepath, file]) => {
|
|
23
24
|
if (file.__filetype === 'file') {
|
|
24
25
|
return res;
|
|
@@ -32,6 +33,14 @@ const addResolverMainFiles = ({ config: { baseOutputDir, resolverTypesPath, reso
|
|
|
32
33
|
if (!res[resolverMainFilename]) {
|
|
33
34
|
res[resolverMainFilename] = createDefaultFileDetails();
|
|
34
35
|
}
|
|
36
|
+
const baseIdentifierName = makeNormalizedResolverNameVariableCompatible(file.meta.normalizedResolverName.base);
|
|
37
|
+
const identifierName = baseIdentifierUsage[baseIdentifierName] > 1
|
|
38
|
+
? makeNormalizedResolverNameVariableCompatible(file.meta.normalizedResolverName.withModule)
|
|
39
|
+
: baseIdentifierName;
|
|
40
|
+
const fieldMapping = {
|
|
41
|
+
propertyName: file.mainImportIdentifier,
|
|
42
|
+
identifierName,
|
|
43
|
+
};
|
|
35
44
|
// Non Root Object fields that was generated
|
|
36
45
|
if (file.__filetype === 'objectType' ||
|
|
37
46
|
file.__filetype === 'generalResolver') {
|
|
@@ -39,23 +48,17 @@ const addResolverMainFiles = ({ config: { baseOutputDir, resolverTypesPath, reso
|
|
|
39
48
|
isTypeImport: false,
|
|
40
49
|
module: (0, utils_1.relativeModulePath)(outputDir, filepath),
|
|
41
50
|
moduleType: 'file',
|
|
42
|
-
namedImports: [
|
|
51
|
+
namedImports: [fieldMapping],
|
|
43
52
|
emitLegacyCommonJSImports,
|
|
44
53
|
}));
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
54
|
+
pushToObjectTypes({
|
|
55
|
+
objectTypes: res[resolverMainFilename].objectTypes,
|
|
56
|
+
property: file.mainImportIdentifier,
|
|
57
|
+
value: identifierName,
|
|
48
58
|
});
|
|
49
59
|
return res;
|
|
50
60
|
}
|
|
51
61
|
// Root object fields
|
|
52
|
-
const identifierName = file.meta.normalizedResolverName
|
|
53
|
-
.split('.')
|
|
54
|
-
.join('_');
|
|
55
|
-
const fieldMapping = {
|
|
56
|
-
propertyName: file.mainImportIdentifier,
|
|
57
|
-
identifierName,
|
|
58
|
-
};
|
|
59
62
|
res[resolverMainFilename].importLines.push((0, utils_1.printImportLine)({
|
|
60
63
|
isTypeImport: false,
|
|
61
64
|
module: (0, utils_1.relativeModulePath)(outputDir, filepath),
|
|
@@ -91,9 +94,10 @@ const addResolverMainFiles = ({ config: { baseOutputDir, resolverTypesPath, reso
|
|
|
91
94
|
const resolverNameParts = usage.normalizedResolverName.split('.');
|
|
92
95
|
// Only 1 part, this is a GraphQL ObjectType
|
|
93
96
|
if (resolverNameParts.length === 1) {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
+
pushToObjectTypes({
|
|
98
|
+
objectTypes: res[resolverMainFilename].objectTypes,
|
|
99
|
+
property: resolverNameParts[0],
|
|
100
|
+
value: usage.identifierName,
|
|
97
101
|
});
|
|
98
102
|
return;
|
|
99
103
|
}
|
|
@@ -137,6 +141,7 @@ const addResolverMainFiles = ({ config: { baseOutputDir, resolverTypesPath, reso
|
|
|
137
141
|
: '';
|
|
138
142
|
result.files[resolverMainFilename] = {
|
|
139
143
|
__filetype: 'file',
|
|
144
|
+
mainImportIdentifier: resolversIdentifier,
|
|
140
145
|
content: `/* This file was automatically generated. DO NOT UPDATE MANUALLY. */
|
|
141
146
|
${(0, utils_1.printImportLine)({
|
|
142
147
|
isTypeImport: true,
|
|
@@ -145,17 +150,59 @@ const addResolverMainFiles = ({ config: { baseOutputDir, resolverTypesPath, reso
|
|
|
145
150
|
namedImports: [resolversTypeName],
|
|
146
151
|
emitLegacyCommonJSImports,
|
|
147
152
|
})}
|
|
148
|
-
${resolverMainFile.importLines.
|
|
153
|
+
${resolverMainFile.importLines.join('\n')}
|
|
149
154
|
export const ${resolversIdentifier}: ${resolversTypeName} = {
|
|
150
155
|
${queries}
|
|
151
156
|
${mutations}
|
|
152
157
|
${suscriptions}
|
|
153
|
-
${resolverMainFile.objectTypes
|
|
158
|
+
${printObjectTypes(resolverMainFile.objectTypes)}
|
|
154
159
|
}`,
|
|
155
|
-
mainImportIdentifier: resolversIdentifier,
|
|
156
160
|
};
|
|
157
161
|
});
|
|
158
162
|
};
|
|
159
163
|
exports.addResolverMainFiles = addResolverMainFiles;
|
|
160
164
|
const printObjectMapping = ({ propertyName, identifierName, }) => `${propertyName}: ${identifierName}`;
|
|
165
|
+
const pushToObjectTypes = ({ objectTypes, property, value, }) => {
|
|
166
|
+
if (!objectTypes[property]) {
|
|
167
|
+
objectTypes[property] = [];
|
|
168
|
+
}
|
|
169
|
+
objectTypes[property].push(value);
|
|
170
|
+
};
|
|
171
|
+
const printObjectTypes = (objectTypes) => {
|
|
172
|
+
return Object.entries(objectTypes)
|
|
173
|
+
.map(([property, values]) => {
|
|
174
|
+
if (values.length === 1) {
|
|
175
|
+
return `${property}: ${values[0]}`;
|
|
176
|
+
}
|
|
177
|
+
const spreadedValueString = values
|
|
178
|
+
.map((value) => `...${value}`)
|
|
179
|
+
.join(',');
|
|
180
|
+
return `${property}: { ${spreadedValueString} }`;
|
|
181
|
+
})
|
|
182
|
+
.join(',\n');
|
|
183
|
+
};
|
|
184
|
+
/**
|
|
185
|
+
* countBaseIdentifiersUsage
|
|
186
|
+
*
|
|
187
|
+
* function to count how many of the same identifier is used across all files
|
|
188
|
+
*/
|
|
189
|
+
const countBaseIdentifiersUsage = (files) => {
|
|
190
|
+
return Object.entries(files).reduce((res, [_filepath, file]) => {
|
|
191
|
+
if (file.__filetype === 'file') {
|
|
192
|
+
return res;
|
|
193
|
+
}
|
|
194
|
+
const identifier = makeNormalizedResolverNameVariableCompatible(file.meta.normalizedResolverName.base);
|
|
195
|
+
if (!res[identifier]) {
|
|
196
|
+
res[identifier] = 0;
|
|
197
|
+
}
|
|
198
|
+
res[identifier]++;
|
|
199
|
+
return res;
|
|
200
|
+
}, {});
|
|
201
|
+
};
|
|
202
|
+
const makeNormalizedResolverNameVariableCompatible = (identifier) => {
|
|
203
|
+
return identifier
|
|
204
|
+
.split('.')
|
|
205
|
+
.filter((part) => Boolean(part))
|
|
206
|
+
.join('_');
|
|
207
|
+
};
|
|
161
208
|
//# sourceMappingURL=addResolverMainFiles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addResolverMainFiles.js","sourceRoot":"","sources":["../../../../../packages/typescript-resolver-files/src/generateResolverFiles/addResolverMainFiles.ts"],"names":[],"mappings":";;;AAAA,6BAA6B;AAC7B,oCAKkB;AAUlB,MAAM,wBAAwB,GAAG,GAAgB,EAAE,CAAC,CAAC;IACnD,WAAW,EAAE,EAAE;IACf,WAAW,EAAE,EAAE;IACf,cAAc,EAAE,EAAE;IAClB,kBAAkB,EAAE,EAAE;IACtB,WAAW,EAAE,EAAE;CAChB,CAAC,CAAC;AAEH;;;;;;;GAOG;AACI,MAAM,oBAAoB,GAAG,CAAC,EACnC,MAAM,EAAE,EACN,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,yBAAyB,GAC1B,EACD,MAAM,GACuB,EAAQ,EAAE;IACvC,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAE3D,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE;QAC1B,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,EAAE;YAC9B,OAAO,GAAG,CAAC;SACZ;QAED,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QAEtB,sHAAsH;QACtH,MAAM,oBAAoB,GACxB,oBAAoB,KAAK,SAAS;YAChC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC;YACnE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;QAEvD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAErD,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;YAC9B,GAAG,CAAC,oBAAoB,CAAC,GAAG,wBAAwB,EAAE,CAAC;SACxD;QAED,4CAA4C;QAC5C,IACE,IAAI,CAAC,UAAU,KAAK,YAAY;YAChC,IAAI,CAAC,UAAU,KAAK,iBAAiB,EACrC;YACA,GAAG,CAAC,oBAAoB,CAAC,CAAC,WAAW,CAAC,IAAI,CACxC,IAAA,uBAAe,EAAC;gBACd,YAAY,EAAE,KAAK;gBACnB,MAAM,EAAE,IAAA,0BAAkB,EAAC,SAAS,EAAE,QAAQ,CAAC;gBAC/C,UAAU,EAAE,MAAM;gBAClB,YAAY,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"addResolverMainFiles.js","sourceRoot":"","sources":["../../../../../packages/typescript-resolver-files/src/generateResolverFiles/addResolverMainFiles.ts"],"names":[],"mappings":";;;AAAA,6BAA6B;AAC7B,oCAKkB;AAUlB,MAAM,wBAAwB,GAAG,GAAgB,EAAE,CAAC,CAAC;IACnD,WAAW,EAAE,EAAE;IACf,WAAW,EAAE,EAAE;IACf,cAAc,EAAE,EAAE;IAClB,kBAAkB,EAAE,EAAE;IACtB,WAAW,EAAE,EAAE;CAChB,CAAC,CAAC;AAEH;;;;;;;GAOG;AACI,MAAM,oBAAoB,GAAG,CAAC,EACnC,MAAM,EAAE,EACN,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,yBAAyB,GAC1B,EACD,MAAM,GACuB,EAAQ,EAAE;IACvC,MAAM,mBAAmB,GAAG,yBAAyB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEpE,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAE3D,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE;QAC1B,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,EAAE;YAC9B,OAAO,GAAG,CAAC;SACZ;QAED,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QAEtB,sHAAsH;QACtH,MAAM,oBAAoB,GACxB,oBAAoB,KAAK,SAAS;YAChC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC;YACnE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;QAEvD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAErD,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;YAC9B,GAAG,CAAC,oBAAoB,CAAC,GAAG,wBAAwB,EAAE,CAAC;SACxD;QAED,MAAM,kBAAkB,GAAG,4CAA4C,CACrE,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CACtC,CAAC;QACF,MAAM,cAAc,GAClB,mBAAmB,CAAC,kBAAkB,CAAC,GAAG,CAAC;YACzC,CAAC,CAAC,4CAA4C,CAC1C,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAC5C;YACH,CAAC,CAAC,kBAAkB,CAAC;QAEzB,MAAM,YAAY,GAAuB;YACvC,YAAY,EAAE,IAAI,CAAC,oBAAoB;YACvC,cAAc;SACf,CAAC;QAEF,4CAA4C;QAC5C,IACE,IAAI,CAAC,UAAU,KAAK,YAAY;YAChC,IAAI,CAAC,UAAU,KAAK,iBAAiB,EACrC;YACA,GAAG,CAAC,oBAAoB,CAAC,CAAC,WAAW,CAAC,IAAI,CACxC,IAAA,uBAAe,EAAC;gBACd,YAAY,EAAE,KAAK;gBACnB,MAAM,EAAE,IAAA,0BAAkB,EAAC,SAAS,EAAE,QAAQ,CAAC;gBAC/C,UAAU,EAAE,MAAM;gBAClB,YAAY,EAAE,CAAC,YAAY,CAAC;gBAC5B,yBAAyB;aAC1B,CAAC,CACH,CAAC;YAEF,iBAAiB,CAAC;gBAChB,WAAW,EAAE,GAAG,CAAC,oBAAoB,CAAC,CAAC,WAAW;gBAClD,QAAQ,EAAE,IAAI,CAAC,oBAAoB;gBACnC,KAAK,EAAE,cAAc;aACtB,CAAC,CAAC;YAEH,OAAO,GAAG,CAAC;SACZ;QAED,qBAAqB;QACrB,GAAG,CAAC,oBAAoB,CAAC,CAAC,WAAW,CAAC,IAAI,CACxC,IAAA,uBAAe,EAAC;YACd,YAAY,EAAE,KAAK;YACnB,MAAM,EAAE,IAAA,0BAAkB,EAAC,SAAS,EAAE,QAAQ,CAAC;YAC/C,UAAU,EAAE,MAAM;YAClB,YAAY,EAAE,CAAC,YAAY,CAAC;YAC5B,yBAAyB;SAC1B,CAAC,CACH,CAAC;QAEF,MAAM,aAAa,GAAuC;YACxD,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;YACrE,QAAQ,EAAE,GAAG,EAAE,CACb,GAAG,CAAC,oBAAoB,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC;YAC7D,YAAY,EAAE,GAAG,EAAE,CACjB,GAAG,CAAC,oBAAoB,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC;SAClE,CAAC;QACF,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAE/C,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE;QACpE,sHAAsH;QACtH,MAAM,oBAAoB,GACxB,oBAAoB,KAAK,SAAS;YAChC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC;YACnE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;QAEvD,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;YAC9B,GAAG,CAAC,oBAAoB,CAAC,GAAG,wBAAwB,EAAE,CAAC;SACxD;QAED,GAAG,CAAC,oBAAoB,CAAC,CAAC,WAAW,CAAC,IAAI,CACxC,IAAA,uBAAe,EAAC;YACd,YAAY,EAAE,KAAK;YACnB,MAAM;YACN,UAAU,EAAE,UAAU;YACtB,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,YAAY;YAC9C,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,aAAa;YAChD,yBAAyB;SAC1B,CAAC,CACH,CAAC;QAEF,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACtC,MAAM,iBAAiB,GAAG,KAAK,CAAC,sBAAsB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAElE,4CAA4C;YAC5C,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE;gBAClC,iBAAiB,CAAC;oBAChB,WAAW,EAAE,GAAG,CAAC,oBAAoB,CAAC,CAAC,WAAW;oBAClD,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC;oBAC9B,KAAK,EAAE,KAAK,CAAC,cAAc;iBAC5B,CAAC,CAAC;gBACH,OAAO;aACR;YAED,yGAAyG;YACzG,MAAM,CAAC,cAAc,EAAE,KAAK,CAAC,GAAG,iBAAiB,CAAC;YAClD,IAAI,CAAC,IAAA,wBAAgB,EAAC,cAAc,CAAC,EAAE;gBACrC,MAAM,IAAI,KAAK,CAAC,sCAAsC,cAAc,EAAE,CAAC,CAAC;aACzE;YACD,MAAM,YAAY,GAAuB;gBACvC,cAAc,EAAE,KAAK,CAAC,cAAc;gBACpC,YAAY,EAAE,KAAK;aACpB,CAAC;YACF,MAAM,aAAa,GAAuC;gBACxD,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;gBACrE,QAAQ,EAAE,GAAG,EAAE,CACb,GAAG,CAAC,oBAAoB,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC;gBAC7D,YAAY,EAAE,GAAG,EAAE,CACjB,GAAG,CAAC,oBAAoB,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC;aAClE,CAAC;YACF,aAAa,CAAC,cAAc,CAAC,EAAE,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,iBAAiB,CAAC,CAAC;IAEtB,MAAM,mBAAmB,GAAG,WAAW,CAAC;IACxC,MAAM,iBAAiB,GAAG,WAAW,CAAC,CAAC,kDAAkD;IAEzF,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CACvC,CAAC,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,EAAE,EAAE;QAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QACrD,MAAM,2BAA2B,GAAG,IAAA,0BAAkB,EACpD,SAAS,EACT,iBAAiB,CAClB,CAAC;QAEF,MAAM,OAAO,GACX,gBAAgB,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;YACrC,CAAC,CAAC,YAAY,gBAAgB,CAAC,WAAW;iBACrC,GAAG,CAAC,kBAAkB,CAAC;iBACvB,IAAI,CAAC,GAAG,CAAC,KAAK;YACnB,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,SAAS,GACb,gBAAgB,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;YACxC,CAAC,CAAC,eAAe,gBAAgB,CAAC,cAAc;iBAC3C,GAAG,CAAC,kBAAkB,CAAC;iBACvB,IAAI,CAAC,GAAG,CAAC,KAAK;YACnB,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,YAAY,GAChB,gBAAgB,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC;YAC5C,CAAC,CAAC,mBAAmB,gBAAgB,CAAC,kBAAkB;iBACnD,GAAG,CAAC,kBAAkB,CAAC;iBACvB,IAAI,CAAC,GAAG,CAAC,KAAK;YACnB,CAAC,CAAC,EAAE,CAAC;QAET,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,GAAG;YACnC,UAAU,EAAE,MAAM;YAClB,oBAAoB,EAAE,mBAAmB;YACzC,OAAO,EAAE;MACX,IAAA,uBAAe,EAAC;gBAChB,YAAY,EAAE,IAAI;gBAClB,MAAM,EAAE,2BAA2B;gBACnC,UAAU,EAAE,MAAM;gBAClB,YAAY,EAAE,CAAC,iBAAiB,CAAC;gBACjC,yBAAyB;aAC1B,CAAC;MACA,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;mBAC1B,mBAAmB,KAAK,iBAAiB;QACpD,OAAO;QACP,SAAS;QACT,YAAY;QACZ,gBAAgB,CAAC,gBAAgB,CAAC,WAAW,CAAC;MAChD;SACC,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC,CAAC;AA3MW,QAAA,oBAAoB,wBA2M/B;AAMF,MAAM,kBAAkB,GAAG,CAAC,EAC1B,YAAY,EACZ,cAAc,GACK,EAAU,EAAE,CAAC,GAAG,YAAY,KAAK,cAAc,EAAE,CAAC;AAGvE,MAAM,iBAAiB,GAAG,CAAC,EACzB,WAAW,EACX,QAAQ,EACR,KAAK,GAKN,EAAQ,EAAE;IACT,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;QAC1B,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;KAC5B;IAED,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,WAA2B,EAAU,EAAE;IAC/D,OAAO,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;SAC/B,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE;QAC1B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACvB,OAAO,GAAG,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;SACpC;QAED,MAAM,mBAAmB,GAAG,MAAM;aAC/B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC;aAC7B,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,GAAG,QAAQ,OAAO,mBAAmB,IAAI,CAAC;IACnD,CAAC,CAAC;SACD,IAAI,CAAC,KAAK,CAAC,CAAC;AACjB,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,yBAAyB,GAAG,CAChC,KAAsD,EAC9B,EAAE;IAC1B,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CACjC,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE;QACzB,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,EAAE;YAC9B,OAAO,GAAG,CAAC;SACZ;QAED,MAAM,UAAU,GAAG,4CAA4C,CAC7D,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CACtC,CAAC;QAEF,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;YACpB,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SACrB;QAED,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;QAElB,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAAE,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,4CAA4C,GAAG,CACnD,UAAkB,EACV,EAAE;IACV,OAAO,UAAU;SACd,KAAK,CAAC,GAAG,CAAC;SACV,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC/B,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.generateResolverFiles = void 0;
|
|
4
|
+
const path = require("path");
|
|
4
5
|
const graphql_1 = require("graphql");
|
|
5
6
|
const utils_1 = require("../utils");
|
|
6
7
|
const addResolverMainFiles_1 = require("./addResolverMainFiles");
|
|
@@ -27,6 +28,7 @@ const generateResolverFiles = (ctx) => {
|
|
|
27
28
|
ScalarType: handleGraphQLScalarType_1.handleGraphQLScalarType,
|
|
28
29
|
InterfaceType: handleGraphQLInterfaceType_1.handleGraphQLInterfaceType,
|
|
29
30
|
};
|
|
31
|
+
// Root object types e.g. Query, Mutation, Subscription
|
|
30
32
|
if ((0, utils_1.isRootObjectType)(schemaType) && (0, graphql_1.isObjectType)(namedType)) {
|
|
31
33
|
Object.entries(namedType.getFields()).forEach(([fieldName, fieldNode]) => {
|
|
32
34
|
var _a;
|
|
@@ -40,6 +42,43 @@ const generateResolverFiles = (ctx) => {
|
|
|
40
42
|
});
|
|
41
43
|
return;
|
|
42
44
|
}
|
|
45
|
+
// Other output object types
|
|
46
|
+
if ((0, graphql_1.isObjectType)(namedType)) {
|
|
47
|
+
const fieldsByGraphQLModule = Object.entries(namedType.getFields()).reduce((res, [_, fieldNode]) => {
|
|
48
|
+
var _a;
|
|
49
|
+
const fieldLocation = (_a = fieldNode.astNode) === null || _a === void 0 ? void 0 : _a.loc;
|
|
50
|
+
const graphQLModule = path.dirname((fieldLocation === null || fieldLocation === void 0 ? void 0 : fieldLocation.source.name) || '');
|
|
51
|
+
if (!res[graphQLModule]) {
|
|
52
|
+
res[graphQLModule] = {
|
|
53
|
+
fieldNodes: [],
|
|
54
|
+
// Note: fieldLocation here is the location of the first field found in a GraphQL Module.
|
|
55
|
+
// The reason we use field's location instead of the object type's location is because when `extend type ObjectType` is used, the location of object type is the last found location.
|
|
56
|
+
// i.e. we cannot rely on object's location if `extend type` is used.
|
|
57
|
+
firstFieldLocation: fieldLocation,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
res[graphQLModule].fieldNodes.push(fieldNode);
|
|
61
|
+
return res;
|
|
62
|
+
}, {});
|
|
63
|
+
// If there are multiple object type files to generate e.g. `extend type ObjectType` is used across multiple modules
|
|
64
|
+
// Then, generate one file for each location
|
|
65
|
+
const fieldsToGenerate = Object.entries(fieldsByGraphQLModule);
|
|
66
|
+
if (fieldsToGenerate.length > 1) {
|
|
67
|
+
fieldsToGenerate.forEach(([_, { firstFieldLocation, fieldNodes }]) => {
|
|
68
|
+
const fieldsToPick = fieldNodes.map((field) => field.name);
|
|
69
|
+
(0, visitNamedType_1.visitNamedType)({
|
|
70
|
+
namedType,
|
|
71
|
+
resolverName: namedType.name,
|
|
72
|
+
belongsToRootObject: null,
|
|
73
|
+
location: firstFieldLocation,
|
|
74
|
+
visitor,
|
|
75
|
+
fieldsToPick,
|
|
76
|
+
}, ctx);
|
|
77
|
+
});
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
// Other types e.g. Union, Scalar, Interface
|
|
43
82
|
(0, visitNamedType_1.visitNamedType)({
|
|
44
83
|
namedType,
|
|
45
84
|
resolverName: namedType.name,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateResolverFiles.js","sourceRoot":"","sources":["../../../../../packages/typescript-resolver-files/src/generateResolverFiles/generateResolverFiles.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"generateResolverFiles.js","sourceRoot":"","sources":["../../../../../packages/typescript-resolver-files/src/generateResolverFiles/generateResolverFiles.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getVariableStatementWithExpectedIdentifier = void 0;
|
|
4
4
|
const getVariableStatementWithExpectedIdentifier = (sourceFile, resolverFile) => {
|
|
5
|
+
var _a, _b;
|
|
5
6
|
let isExported = false;
|
|
6
7
|
const variableStatementWithExpectedIdentifier = sourceFile.getVariableStatement((statement) => {
|
|
7
8
|
let hasExpectedIdentifier = false;
|
|
@@ -18,6 +19,19 @@ const getVariableStatementWithExpectedIdentifier = (sourceFile, resolverFile) =>
|
|
|
18
19
|
});
|
|
19
20
|
return hasExpectedIdentifier;
|
|
20
21
|
});
|
|
22
|
+
/**
|
|
23
|
+
* If we found the variable statement replace its type with the expected resolver type string
|
|
24
|
+
*
|
|
25
|
+
* This is because we change the type of the resolver in some cases:
|
|
26
|
+
* 1. When `extend type <Object>` is used, we might change its original type to the picked version
|
|
27
|
+
* e.g. `Book` might become `Pick<Book, 'title' | 'author'>`
|
|
28
|
+
*/
|
|
29
|
+
if (variableStatementWithExpectedIdentifier &&
|
|
30
|
+
resolverFile.meta.resolverTypeString) {
|
|
31
|
+
(_b = (_a = variableStatementWithExpectedIdentifier
|
|
32
|
+
.getDeclarationList()
|
|
33
|
+
.getDeclarations()[0]) === null || _a === void 0 ? void 0 : _a.getTypeNode()) === null || _b === void 0 ? void 0 : _b.replaceWithText(resolverFile.meta.resolverTypeString);
|
|
34
|
+
}
|
|
21
35
|
return {
|
|
22
36
|
variableStatement: variableStatementWithExpectedIdentifier,
|
|
23
37
|
isExported,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getVariableStatementWithExpectedIdentifier.js","sourceRoot":"","sources":["../../../../../packages/typescript-resolver-files/src/generateResolverFiles/getVariableStatementWithExpectedIdentifier.ts"],"names":[],"mappings":";;;AAGO,MAAM,0CAA0C,GAAG,CACxD,UAAsB,EACtB,YAA0B,EAI1B,EAAE
|
|
1
|
+
{"version":3,"file":"getVariableStatementWithExpectedIdentifier.js","sourceRoot":"","sources":["../../../../../packages/typescript-resolver-files/src/generateResolverFiles/getVariableStatementWithExpectedIdentifier.ts"],"names":[],"mappings":";;;AAGO,MAAM,0CAA0C,GAAG,CACxD,UAAsB,EACtB,YAA0B,EAI1B,EAAE;;IACF,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,MAAM,uCAAuC,GAC3C,UAAU,CAAC,oBAAoB,CAAC,CAAC,SAAS,EAAE,EAAE;QAC5C,IAAI,qBAAqB,GAAG,KAAK,CAAC;QAClC,SAAS;aACN,kBAAkB,EAAE;aACpB,eAAe,EAAE;aACjB,OAAO,CAAC,CAAC,eAAe,EAAE,EAAE;YAC3B,IAAI,eAAe,CAAC,OAAO,EAAE,KAAK,YAAY,CAAC,oBAAoB,EAAE;gBACnE,qBAAqB,GAAG,IAAI,CAAC;gBAC7B,IAAI,SAAS,CAAC,UAAU,EAAE,EAAE;oBAC1B,UAAU,GAAG,IAAI,CAAC;iBACnB;aACF;QACH,CAAC,CAAC,CAAC;QACL,OAAO,qBAAqB,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEL;;;;;;OAMG;IACH,IACE,uCAAuC;QACvC,YAAY,CAAC,IAAI,CAAC,kBAAkB,EACpC;QACA,MAAA,MAAA,uCAAuC;aACpC,kBAAkB,EAAE;aACpB,eAAe,EAAE,CAAC,CAAC,CAAC,0CACnB,WAAW,EAAE,0CACb,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;KAC3D;IAED,OAAO;QACL,iBAAiB,EAAE,uCAAuC;QAC1D,UAAU;KACX,CAAC;AACJ,CAAC,CAAC;AA/CW,QAAA,0CAA0C,8CA+CrD"}
|
|
@@ -6,7 +6,8 @@ const handleGraphQLInterfaceType = ({ fieldFilePath, resolverName, normalizedRes
|
|
|
6
6
|
if (!resolverGeneration.interface) {
|
|
7
7
|
return;
|
|
8
8
|
}
|
|
9
|
-
const
|
|
9
|
+
const resolverTypeString = resolversTypeMeta.typeString;
|
|
10
|
+
const variableStatement = `export const ${resolverName}: ${resolverTypeString} = { /* Implement ${resolverName} interface logic here */ };`;
|
|
10
11
|
result.files[fieldFilePath] = {
|
|
11
12
|
__filetype: 'generalResolver',
|
|
12
13
|
content: `
|
|
@@ -23,6 +24,7 @@ const handleGraphQLInterfaceType = ({ fieldFilePath, resolverName, normalizedRes
|
|
|
23
24
|
moduleName,
|
|
24
25
|
normalizedResolverName,
|
|
25
26
|
variableStatement,
|
|
27
|
+
resolverTypeString,
|
|
26
28
|
},
|
|
27
29
|
};
|
|
28
30
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleGraphQLInterfaceType.js","sourceRoot":"","sources":["../../../../../packages/typescript-resolver-files/src/generateResolverFiles/handleGraphQLInterfaceType.ts"],"names":[],"mappings":";;;AAAA,oCAA2C;AAGpC,MAAM,0BAA0B,GAAuB,CAC5D,EACE,aAAa,EACb,YAAY,EACZ,sBAAsB,EACtB,iBAAiB,EACjB,UAAU,GACX,EACD,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,EAAE,EACrE,EAAE;IACF,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE;QACjC,OAAO;KACR;IAED,MAAM,iBAAiB,GAAG,gBAAgB,YAAY,KAAK,
|
|
1
|
+
{"version":3,"file":"handleGraphQLInterfaceType.js","sourceRoot":"","sources":["../../../../../packages/typescript-resolver-files/src/generateResolverFiles/handleGraphQLInterfaceType.ts"],"names":[],"mappings":";;;AAAA,oCAA2C;AAGpC,MAAM,0BAA0B,GAAuB,CAC5D,EACE,aAAa,EACb,YAAY,EACZ,sBAAsB,EACtB,iBAAiB,EACjB,UAAU,GACX,EACD,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,EAAE,EACrE,EAAE;IACF,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE;QACjC,OAAO;KACR;IAED,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,UAAU,CAAC;IAExD,MAAM,iBAAiB,GAAG,gBAAgB,YAAY,KAAK,kBAAkB,qBAAqB,YAAY,6BAA6B,CAAC;IAE5I,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG;QAC5B,UAAU,EAAE,iBAAiB;QAC7B,OAAO,EAAE;MACP,IAAA,uBAAe,EAAC;YAChB,YAAY,EAAE,IAAI;YAClB,MAAM,EAAE,iBAAiB,CAAC,MAAM;YAChC,UAAU,EAAE,iBAAiB,CAAC,UAAU;YACxC,YAAY,EAAE,CAAC,iBAAiB,CAAC,eAAe,CAAC;YACjD,yBAAyB;SAC1B,CAAC;MACA,iBAAiB,EAAE;QACrB,oBAAoB,EAAE,YAAY;QAClC,IAAI,EAAE;YACJ,UAAU;YACV,sBAAsB;YACtB,iBAAiB;YACjB,kBAAkB;SACnB;KACF,CAAC;AACJ,CAAC,CAAC;AArCW,QAAA,0BAA0B,8BAqCrC"}
|
|
@@ -2,12 +2,31 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.handleGraphQLObjectType = void 0;
|
|
4
4
|
const utils_1 = require("../utils");
|
|
5
|
-
const handleGraphQLObjectType = ({ fieldFilePath, resolverName, normalizedResolverName, resolversTypeMeta, moduleName,
|
|
5
|
+
const handleGraphQLObjectType = ({ fieldFilePath, resolverName, normalizedResolverName, resolversTypeMeta, moduleName, fieldsToPick = [], // If fieldsToPick.length === 0, it means the current object handles all resolvers
|
|
6
|
+
}, { result, config: { resolverGeneration, graphQLObjectTypeResolversToGenerate, emitLegacyCommonJSImports, }, }) => {
|
|
6
7
|
if (!resolverGeneration.object) {
|
|
7
8
|
return;
|
|
8
9
|
}
|
|
9
|
-
|
|
10
|
-
|
|
10
|
+
// `typeString` contains the resolver type
|
|
11
|
+
// If there's fieldsToPick, we must only pick said fields from the original resolver type
|
|
12
|
+
const typeString = fieldsToPick.length > 0
|
|
13
|
+
? `Pick<${resolversTypeMeta.typeString}, ${fieldsToPick
|
|
14
|
+
.map((fieldName) => `'${fieldName}'`)
|
|
15
|
+
.join('|')}>`
|
|
16
|
+
: resolversTypeMeta.typeString;
|
|
17
|
+
// Array of all resolvers that may need type checking
|
|
18
|
+
// If there's fieldsToPick, we must only generate said fields
|
|
19
|
+
const allResolversToGenerate = graphQLObjectTypeResolversToGenerate[resolverName];
|
|
20
|
+
const resolversToGenerate = fieldsToPick.length > 0
|
|
21
|
+
? fieldsToPick.reduce((res, fieldToPick) => {
|
|
22
|
+
if (allResolversToGenerate) {
|
|
23
|
+
res[fieldToPick] = allResolversToGenerate[fieldToPick];
|
|
24
|
+
}
|
|
25
|
+
return res;
|
|
26
|
+
}, {})
|
|
27
|
+
: allResolversToGenerate;
|
|
28
|
+
const variableStatement = `export const ${resolverName}: ${typeString} = {
|
|
29
|
+
/* Implement ${resolverName} resolver logic here */
|
|
11
30
|
};`;
|
|
12
31
|
result.files[fieldFilePath] = {
|
|
13
32
|
__filetype: 'objectType',
|
|
@@ -25,7 +44,8 @@ const handleGraphQLObjectType = ({ fieldFilePath, resolverName, normalizedResolv
|
|
|
25
44
|
moduleName,
|
|
26
45
|
normalizedResolverName,
|
|
27
46
|
variableStatement,
|
|
28
|
-
|
|
47
|
+
resolverTypeString: typeString,
|
|
48
|
+
resolversToGenerate,
|
|
29
49
|
},
|
|
30
50
|
};
|
|
31
51
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleGraphQLObjectType.js","sourceRoot":"","sources":["../../../../../packages/typescript-resolver-files/src/generateResolverFiles/handleGraphQLObjectType.ts"],"names":[],"mappings":";;;AACA,oCAA2C;AAEpC,MAAM,uBAAuB,
|
|
1
|
+
{"version":3,"file":"handleGraphQLObjectType.js","sourceRoot":"","sources":["../../../../../packages/typescript-resolver-files/src/generateResolverFiles/handleGraphQLObjectType.ts"],"names":[],"mappings":";;;AACA,oCAA2C;AAEpC,MAAM,uBAAuB,GAGhC,CACF,EACE,aAAa,EACb,YAAY,EACZ,sBAAsB,EACtB,iBAAiB,EACjB,UAAU,EACV,YAAY,GAAG,EAAE,EAAE,kFAAkF;EACtG,EACD,EACE,MAAM,EACN,MAAM,EAAE,EACN,kBAAkB,EAClB,oCAAoC,EACpC,yBAAyB,GAC1B,GACF,EACD,EAAE;IACF,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;QAC9B,OAAO;KACR;IAED,0CAA0C;IAC1C,yFAAyF;IACzF,MAAM,UAAU,GACd,YAAY,CAAC,MAAM,GAAG,CAAC;QACrB,CAAC,CAAC,QAAQ,iBAAiB,CAAC,UAAU,KAAK,YAAY;aAClD,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,SAAS,GAAG,CAAC;aACpC,IAAI,CAAC,GAAG,CAAC,GAAG;QACjB,CAAC,CAAC,iBAAiB,CAAC,UAAU,CAAC;IAEnC,qDAAqD;IACrD,6DAA6D;IAC7D,MAAM,sBAAsB,GAC1B,oCAAoC,CAAC,YAAY,CAAC,CAAC;IACrD,MAAM,mBAAmB,GACvB,YAAY,CAAC,MAAM,GAAG,CAAC;QACrB,CAAC,CAAC,YAAY,CAAC,MAAM,CACjB,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE;YACnB,IAAI,sBAAsB,EAAE;gBAC1B,GAAG,CAAC,WAAW,CAAC,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;aACxD;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EACD,EAAE,CACH;QACH,CAAC,CAAC,sBAAsB,CAAC;IAE7B,MAAM,iBAAiB,GAAG,gBAAgB,YAAY,KAAK,UAAU;mBACpD,YAAY;KAC1B,CAAC;IAEJ,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG;QAC5B,UAAU,EAAE,YAAY;QACxB,OAAO,EAAE;MACP,IAAA,uBAAe,EAAC;YAChB,YAAY,EAAE,IAAI;YAClB,MAAM,EAAE,iBAAiB,CAAC,MAAM;YAChC,UAAU,EAAE,iBAAiB,CAAC,UAAU;YACxC,YAAY,EAAE,CAAC,iBAAiB,CAAC,eAAe,CAAC;YACjD,yBAAyB;SAC1B,CAAC;MACA,iBAAiB,EAAE;QACrB,oBAAoB,EAAE,YAAY;QAClC,IAAI,EAAE;YACJ,UAAU;YACV,sBAAsB;YACtB,iBAAiB;YACjB,kBAAkB,EAAE,UAAU;YAC9B,mBAAmB;SACpB;KACF,CAAC;AACJ,CAAC,CAAC;AA3EW,QAAA,uBAAuB,2BA2ElC"}
|
|
@@ -8,10 +8,11 @@ const handleGraphQLRootObjectTypeField = ({ fieldFilePath, resolverName, belongs
|
|
|
8
8
|
(belongsToRootObject === 'Subscription' && !resolverGeneration.subscription)) {
|
|
9
9
|
return;
|
|
10
10
|
}
|
|
11
|
-
const suggestion = `/* Implement ${normalizedResolverName} resolver logic here */`;
|
|
12
|
-
|
|
11
|
+
const suggestion = `/* Implement ${normalizedResolverName.base} resolver logic here */`;
|
|
12
|
+
const resolverTypeString = `NonNullable<${resolversTypeMeta.typeString}>`;
|
|
13
|
+
let variableStatement = `export const ${resolverName}: ${resolverTypeString} = async (_parent, _arg, _ctx) => { ${suggestion} };`;
|
|
13
14
|
if (belongsToRootObject === 'Subscription') {
|
|
14
|
-
variableStatement = `export const ${resolverName}:
|
|
15
|
+
variableStatement = `export const ${resolverName}: ${resolverTypeString} = {
|
|
15
16
|
subscribe: async (_parent, _arg, _ctx) => { ${suggestion} },
|
|
16
17
|
}`;
|
|
17
18
|
}
|
|
@@ -31,6 +32,7 @@ const handleGraphQLRootObjectTypeField = ({ fieldFilePath, resolverName, belongs
|
|
|
31
32
|
moduleName,
|
|
32
33
|
belongsToRootObject,
|
|
33
34
|
variableStatement,
|
|
35
|
+
resolverTypeString,
|
|
34
36
|
normalizedResolverName,
|
|
35
37
|
},
|
|
36
38
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleGraphQLRootObjectTypeField.js","sourceRoot":"","sources":["../../../../../packages/typescript-resolver-files/src/generateResolverFiles/handleGraphQLRootObjectTypeField.ts"],"names":[],"mappings":";;;AAAA,oCAAgE;AAGzD,MAAM,gCAAgC,GAEzC,CACF,EACE,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,UAAU,GACX,EACD,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,EAAE,EACrE,EAAE;IACF,IACE,CAAC,mBAAmB,KAAK,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;QAC9D,CAAC,mBAAmB,KAAK,UAAU,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;QACpE,CAAC,mBAAmB,KAAK,cAAc,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,EAC5E;QACA,OAAO;KACR;IAED,MAAM,UAAU,GAAG,gBAAgB,sBAAsB,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"handleGraphQLRootObjectTypeField.js","sourceRoot":"","sources":["../../../../../packages/typescript-resolver-files/src/generateResolverFiles/handleGraphQLRootObjectTypeField.ts"],"names":[],"mappings":";;;AAAA,oCAAgE;AAGzD,MAAM,gCAAgC,GAEzC,CACF,EACE,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,UAAU,GACX,EACD,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,EAAE,EACrE,EAAE;IACF,IACE,CAAC,mBAAmB,KAAK,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;QAC9D,CAAC,mBAAmB,KAAK,UAAU,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;QACpE,CAAC,mBAAmB,KAAK,cAAc,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,EAC5E;QACA,OAAO;KACR;IAED,MAAM,UAAU,GAAG,gBAAgB,sBAAsB,CAAC,IAAI,yBAAyB,CAAC;IAExF,MAAM,kBAAkB,GAAG,eAAe,iBAAiB,CAAC,UAAU,GAAG,CAAC;IAE1E,IAAI,iBAAiB,GAAG,gBAAgB,YAAY,KAAK,kBAAkB,uCAAuC,UAAU,KAAK,CAAC;IAClI,IAAI,mBAAmB,KAAK,cAAc,EAAE;QAC1C,iBAAiB,GAAG,gBAAgB,YAAY,KAAK,kBAAkB;oDACvB,UAAU;MACxD,CAAC;KACJ;IAED,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG;QAC5B,UAAU,EAAE,6BAA6B;QACzC,OAAO,EAAE;UACH,IAAA,uBAAe,EAAC;YAChB,YAAY,EAAE,IAAI;YAClB,MAAM,EAAE,iBAAiB,CAAC,MAAM;YAChC,UAAU,EAAE,iBAAiB,CAAC,UAAU;YACxC,YAAY,EAAE,CAAC,iBAAiB,CAAC,eAAe,CAAC;YACjD,yBAAyB;SAC1B,CAAC;UACA,iBAAiB,EAAE;QACzB,oBAAoB,EAAE,YAAY;QAClC,IAAI,EAAE;YACJ,UAAU;YACV,mBAAmB;YACnB,iBAAiB;YACjB,kBAAkB;YAClB,sBAAsB;SACvB;KACF,CAAC;AACJ,CAAC,CAAC;AApDW,QAAA,gCAAgC,oCAoD3C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleGraphQLScalarType.js","sourceRoot":"","sources":["../../../../../packages/typescript-resolver-files/src/generateResolverFiles/handleGraphQLScalarType.ts"],"names":[],"mappings":";;;AAAA,oCAA2C;AAG3C,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAEvC,MAAM,uBAAuB,GAAuB,CACzD,EAAE,aAAa,EAAE,YAAY,EAAE,sBAAsB,EAAE,UAAU,EAAE,EACnE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,EAAE,EACrE,EAAE;IACF,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;QAC9B,OAAO;KACR;IAED,MAAM,iBAAiB,GAAG,gBAAgB,YAAY;aAC3C,YAAY;oBACL,YAAY;;;;;;;;;;MAU1B,CAAC;IAEL,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG;QAC5B,UAAU,EAAE,iBAAiB;QAC7B,OAAO,EAAE;MACP,IAAA,uBAAe,EAAC;YAChB,YAAY,EAAE,KAAK;YACnB,MAAM,EAAE,SAAS;YACjB,UAAU,EAAE,QAAQ;YACpB,YAAY,EAAE,CAAC,iBAAiB,CAAC;YACjC,yBAAyB;SAC1B,CAAC;MACA,iBAAiB,EAAE;QACrB,oBAAoB,EAAE,YAAY;QAClC,IAAI,EAAE;YACJ,UAAU;YACV,sBAAsB;YACtB,iBAAiB;
|
|
1
|
+
{"version":3,"file":"handleGraphQLScalarType.js","sourceRoot":"","sources":["../../../../../packages/typescript-resolver-files/src/generateResolverFiles/handleGraphQLScalarType.ts"],"names":[],"mappings":";;;AAAA,oCAA2C;AAG3C,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAEvC,MAAM,uBAAuB,GAAuB,CACzD,EAAE,aAAa,EAAE,YAAY,EAAE,sBAAsB,EAAE,UAAU,EAAE,EACnE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,EAAE,EACrE,EAAE;IACF,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;QAC9B,OAAO;KACR;IAED,MAAM,iBAAiB,GAAG,gBAAgB,YAAY;aAC3C,YAAY;oBACL,YAAY;;;;;;;;;;MAU1B,CAAC;IAEL,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG;QAC5B,UAAU,EAAE,iBAAiB;QAC7B,OAAO,EAAE;MACP,IAAA,uBAAe,EAAC;YAChB,YAAY,EAAE,KAAK;YACnB,MAAM,EAAE,SAAS;YACjB,UAAU,EAAE,QAAQ;YACpB,YAAY,EAAE,CAAC,iBAAiB,CAAC;YACjC,yBAAyB;SAC1B,CAAC;MACA,iBAAiB,EAAE;QACrB,oBAAoB,EAAE,YAAY;QAClC,IAAI,EAAE;YACJ,UAAU;YACV,sBAAsB;YACtB,iBAAiB;YACjB,kBAAkB,EAAE,IAAI;SACzB;KACF,CAAC;AACJ,CAAC,CAAC;AAzCW,QAAA,uBAAuB,2BAyClC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleGraphQLUnionType.js","sourceRoot":"","sources":["../../../../../packages/typescript-resolver-files/src/generateResolverFiles/handleGraphQLUnionType.ts"],"names":[],"mappings":";;;AAAA,oCAA2C;AAGpC,MAAM,sBAAsB,GAAuB,CACxD,EACE,aAAa,EACb,YAAY,EACZ,sBAAsB,EACtB,iBAAiB,EACjB,UAAU,GACX,EACD,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,EAAE,EACrE,EAAE;IACF,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE;QAC7B,OAAO;KACR;IAED,MAAM,iBAAiB,GAAG,gBAAgB,YAAY,KAAK,iBAAiB,CAAC,UAAU,qBAAqB,YAAY,yBAAyB,CAAC;IAElJ,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG;QAC5B,UAAU,EAAE,iBAAiB;QAC7B,OAAO,EAAE;MACP,IAAA,uBAAe,EAAC;YAChB,YAAY,EAAE,IAAI;YAClB,MAAM,EAAE,iBAAiB,CAAC,MAAM;YAChC,UAAU,EAAE,iBAAiB,CAAC,UAAU;YACxC,YAAY,EAAE,CAAC,iBAAiB,CAAC,eAAe,CAAC;YACjD,yBAAyB;SAC1B,CAAC;MACA,iBAAiB,EAAE;QACrB,oBAAoB,EAAE,YAAY;QAClC,IAAI,EAAE;YACJ,UAAU;YACV,sBAAsB;YACtB,iBAAiB;SAClB;KACF,CAAC;AACJ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"handleGraphQLUnionType.js","sourceRoot":"","sources":["../../../../../packages/typescript-resolver-files/src/generateResolverFiles/handleGraphQLUnionType.ts"],"names":[],"mappings":";;;AAAA,oCAA2C;AAGpC,MAAM,sBAAsB,GAAuB,CACxD,EACE,aAAa,EACb,YAAY,EACZ,sBAAsB,EACtB,iBAAiB,EACjB,UAAU,GACX,EACD,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,EAAE,EACrE,EAAE;IACF,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE;QAC7B,OAAO;KACR;IAED,MAAM,iBAAiB,GAAG,gBAAgB,YAAY,KAAK,iBAAiB,CAAC,UAAU,qBAAqB,YAAY,yBAAyB,CAAC;IAElJ,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG;QAC5B,UAAU,EAAE,iBAAiB;QAC7B,OAAO,EAAE;MACP,IAAA,uBAAe,EAAC;YAChB,YAAY,EAAE,IAAI;YAClB,MAAM,EAAE,iBAAiB,CAAC,MAAM;YAChC,UAAU,EAAE,iBAAiB,CAAC,UAAU;YACxC,YAAY,EAAE,CAAC,iBAAiB,CAAC,eAAe,CAAC;YACjD,yBAAyB;SAC1B,CAAC;MACA,iBAAiB,EAAE;QACrB,oBAAoB,EAAE,YAAY;QAClC,IAAI,EAAE;YACJ,UAAU;YACV,sBAAsB;YACtB,kBAAkB,EAAE,iBAAiB,CAAC,UAAU;YAChD,iBAAiB;SAClB;KACF,CAAC;AACJ,CAAC,CAAC;AAnCW,QAAA,sBAAsB,0BAmCjC"}
|
|
@@ -4,6 +4,7 @@ import type { GraphQLObjectTypeResolversToGenerate } from '../getGraphQLObjectTy
|
|
|
4
4
|
import type { ParseSourcesResult } from '../parseSources';
|
|
5
5
|
import type { ImportLineMeta, RootObjectType } from '../utils';
|
|
6
6
|
import type { ParsedPresetConfig } from '../validatePresetConfig';
|
|
7
|
+
import type { NormalizedResolverName } from './visitNamedType';
|
|
7
8
|
interface BaseVirtualFile {
|
|
8
9
|
__filetype: string;
|
|
9
10
|
content: string;
|
|
@@ -17,7 +18,8 @@ export interface GeneralResolverFile extends BaseVirtualFile {
|
|
|
17
18
|
meta: {
|
|
18
19
|
moduleName: string;
|
|
19
20
|
variableStatement: string;
|
|
20
|
-
|
|
21
|
+
resolverTypeString: string | null;
|
|
22
|
+
normalizedResolverName: NormalizedResolverName;
|
|
21
23
|
};
|
|
22
24
|
}
|
|
23
25
|
export interface RootObjectTypeFieldResolverFile extends BaseVirtualFile {
|
|
@@ -26,7 +28,8 @@ export interface RootObjectTypeFieldResolverFile extends BaseVirtualFile {
|
|
|
26
28
|
moduleName: string;
|
|
27
29
|
belongsToRootObject: RootObjectType;
|
|
28
30
|
variableStatement: string;
|
|
29
|
-
|
|
31
|
+
resolverTypeString: string;
|
|
32
|
+
normalizedResolverName: NormalizedResolverName;
|
|
30
33
|
};
|
|
31
34
|
}
|
|
32
35
|
export interface ObjectTypeFile extends BaseVirtualFile {
|
|
@@ -34,7 +37,8 @@ export interface ObjectTypeFile extends BaseVirtualFile {
|
|
|
34
37
|
meta: {
|
|
35
38
|
moduleName: string;
|
|
36
39
|
variableStatement: string;
|
|
37
|
-
|
|
40
|
+
resolverTypeString: string;
|
|
41
|
+
normalizedResolverName: NormalizedResolverName;
|
|
38
42
|
resolversToGenerate?: GraphQLObjectTypeResolversToGenerate[number];
|
|
39
43
|
};
|
|
40
44
|
}
|
|
@@ -78,13 +82,13 @@ export interface GraphQLTypeHandlerParams<BelongsToRootObject = null> {
|
|
|
78
82
|
fieldFilePath: string;
|
|
79
83
|
resolverName: string;
|
|
80
84
|
belongsToRootObject: BelongsToRootObject;
|
|
81
|
-
normalizedResolverName:
|
|
85
|
+
normalizedResolverName: NormalizedResolverName;
|
|
82
86
|
resolversTypeMeta: {
|
|
83
87
|
typeNamedImport: `${string}Resolvers`;
|
|
84
88
|
module: ImportLineMeta['module'];
|
|
85
89
|
moduleType: ImportLineMeta['moduleType'];
|
|
86
|
-
typeString:
|
|
90
|
+
typeString: string;
|
|
87
91
|
};
|
|
88
92
|
}
|
|
89
|
-
export type GraphQLTypeHandler<BelongsToRootObject = null
|
|
93
|
+
export type GraphQLTypeHandler<BelongsToRootObject = null, ExtraParams = Record<string, unknown>> = (params: GraphQLTypeHandlerParams<BelongsToRootObject> & ExtraParams, ctx: GenerateResolverFilesContext) => void;
|
|
90
94
|
export {};
|
|
@@ -14,4 +14,8 @@ export interface VisitNamedTypeParams {
|
|
|
14
14
|
};
|
|
15
15
|
location?: Location;
|
|
16
16
|
}
|
|
17
|
-
export declare const visitNamedType: ({ namedType, resolverName, belongsToRootObject, location, visitor, }: VisitNamedTypeParams, ctx: GenerateResolverFilesContext) => void;
|
|
17
|
+
export declare const visitNamedType: <P extends Record<string, unknown>>({ namedType, resolverName, belongsToRootObject, location, visitor, ...extraParams }: VisitNamedTypeParams & P, ctx: GenerateResolverFilesContext) => void;
|
|
18
|
+
export interface NormalizedResolverName {
|
|
19
|
+
base: string;
|
|
20
|
+
withModule: string;
|
|
21
|
+
}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.visitNamedType = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
4
5
|
const path = require("path");
|
|
5
6
|
const graphql_1 = require("graphql");
|
|
6
7
|
const utils_1 = require("../utils");
|
|
7
8
|
const addExternalResolverImport_1 = require("./addExternalResolverImport");
|
|
8
|
-
const visitNamedType = (
|
|
9
|
-
|
|
9
|
+
const visitNamedType = (_a, ctx) => {
|
|
10
|
+
var { namedType, resolverName, belongsToRootObject, location, visitor } = _a, extraParams = tslib_1.__rest(_a, ["namedType", "resolverName", "belongsToRootObject", "location", "visitor"]);
|
|
10
11
|
// Check to see if need to generate resolver files
|
|
11
12
|
const parsedDetails = parseLocationForOutputDir(belongsToRootObject ? [belongsToRootObject] : [], ctx, location);
|
|
12
13
|
if (!parsedDetails) {
|
|
@@ -14,24 +15,27 @@ const visitNamedType = ({ namedType, resolverName, belongsToRootObject, location
|
|
|
14
15
|
return;
|
|
15
16
|
}
|
|
16
17
|
const { moduleName, outputDir } = parsedDetails;
|
|
17
|
-
const
|
|
18
|
+
const normalizedResolverName = normalizeResolverName(moduleName, resolverName, belongsToRootObject);
|
|
19
|
+
const externalResolverImportSyntax = ctx.config.externalResolvers[normalizedResolverName.base];
|
|
20
|
+
// when used with extended object types scenario
|
|
18
21
|
if (externalResolverImportSyntax) {
|
|
19
22
|
// If has external resolver, use it
|
|
20
23
|
(0, addExternalResolverImport_1.addExternalResolverImport)({
|
|
21
24
|
moduleName,
|
|
22
|
-
normalizedResolverName,
|
|
25
|
+
normalizedResolverName: normalizedResolverName.base,
|
|
23
26
|
configImportSyntax: externalResolverImportSyntax,
|
|
24
27
|
}, ctx);
|
|
25
28
|
return;
|
|
26
29
|
}
|
|
27
30
|
// Generate resolver files based on its type
|
|
28
|
-
const
|
|
31
|
+
const visitorHandlerParamsBase = validateAndPrepareForGraphQLTypeHandler({
|
|
29
32
|
resolverName,
|
|
30
33
|
normalizedResolverName,
|
|
31
34
|
outputDir,
|
|
32
35
|
belongsToRootObject,
|
|
33
36
|
moduleName,
|
|
34
37
|
}, ctx);
|
|
38
|
+
const visitorHandlerParams = Object.assign(Object.assign({}, visitorHandlerParamsBase), extraParams);
|
|
35
39
|
if (visitorHandlerParams.belongsToRootObject) {
|
|
36
40
|
visitor['RootObjectTypeField'](visitorHandlerParams, ctx);
|
|
37
41
|
}
|
|
@@ -114,11 +118,24 @@ const validateAndPrepareForGraphQLTypeHandler = ({ resolverName, normalizedResol
|
|
|
114
118
|
* Function to get format resolver name based on its definition in the schema
|
|
115
119
|
* - Root object type resolver e.g Query.me, Mutation.updateUser
|
|
116
120
|
* - Object type e.g. User, Profile
|
|
121
|
+
*
|
|
122
|
+
* Returns an object with 2 key/value pairs:
|
|
123
|
+
* - base: resolver name without module. This is used by to match up with config.externalResolvers.
|
|
124
|
+
* - withModule: resolver name with module. This is used to identify the resolver INTERNAL unique path used in main resolver files.
|
|
117
125
|
*/
|
|
118
|
-
const normalizeResolverName = (name, rootObject) => {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
126
|
+
const normalizeResolverName = (moduleName, name, rootObject) => {
|
|
127
|
+
const baseResolverName = !rootObject ? name : `${rootObject}.${name}`;
|
|
128
|
+
// Note: this is to make sure the resolver name is a valid variable name because we use it in resolvers.generated.ts
|
|
129
|
+
//
|
|
130
|
+
// However, this naive implementation means there could be a duplicated variable name if a mix of kebab-case and snake_case is used.
|
|
131
|
+
// e.g. `user-by-account-name` and `user_by_account_name` will both be normalized to `user_by_account_name`
|
|
132
|
+
//
|
|
133
|
+
// If users report this issue. We can try another approach.
|
|
134
|
+
// I'm banking my slim hope in humanity that no codebase is so chaotic that it uses both kebab-case and snake_case.
|
|
135
|
+
const variableSafeModuleName = moduleName.replace('-', '_');
|
|
136
|
+
return {
|
|
137
|
+
base: baseResolverName,
|
|
138
|
+
withModule: `${variableSafeModuleName}.${baseResolverName}`,
|
|
139
|
+
};
|
|
123
140
|
};
|
|
124
141
|
//# sourceMappingURL=visitNamedType.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visitNamedType.js","sourceRoot":"","sources":["../../../../../packages/typescript-resolver-files/src/generateResolverFiles/visitNamedType.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"visitNamedType.js","sourceRoot":"","sources":["../../../../../packages/typescript-resolver-files/src/generateResolverFiles/visitNamedType.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './normalizeAddConfigPath';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/typescript-resolver-files/src/normalizeAddConfigPath/index.ts"],"names":[],"mappings":";;;AAAA,mEAAyC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { AddPluginConfig } from '@graphql-codegen/add/typings/config';
|
|
2
|
+
/**
|
|
3
|
+
* normalizeAddConfigPath
|
|
4
|
+
*
|
|
5
|
+
* Function to turn the add config keys into normalized path a.k.a. path from baseOutputDir
|
|
6
|
+
* This helps us detects targeted file being given in different formats e.g. './types.generated.ts' vs 'types.generated.ts'
|
|
7
|
+
*/
|
|
8
|
+
export declare const normalizeAddConfigPath: ({ add, baseOutputDir, }: {
|
|
9
|
+
add?: Record<string, AddPluginConfig> | undefined;
|
|
10
|
+
baseOutputDir: string;
|
|
11
|
+
}) => Record<string, AddPluginConfig> | undefined;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.normalizeAddConfigPath = void 0;
|
|
4
|
+
const path = require("path");
|
|
5
|
+
/**
|
|
6
|
+
* normalizeAddConfigPath
|
|
7
|
+
*
|
|
8
|
+
* Function to turn the add config keys into normalized path a.k.a. path from baseOutputDir
|
|
9
|
+
* This helps us detects targeted file being given in different formats e.g. './types.generated.ts' vs 'types.generated.ts'
|
|
10
|
+
*/
|
|
11
|
+
const normalizeAddConfigPath = ({ add, baseOutputDir, }) => {
|
|
12
|
+
if (!add) {
|
|
13
|
+
return undefined;
|
|
14
|
+
}
|
|
15
|
+
const normalizedPathAdd = Object.entries(add).reduce((res, [originalFilePath, config]) => {
|
|
16
|
+
res[path.posix.join(baseOutputDir, originalFilePath)] = config;
|
|
17
|
+
return res;
|
|
18
|
+
}, {});
|
|
19
|
+
return normalizedPathAdd;
|
|
20
|
+
};
|
|
21
|
+
exports.normalizeAddConfigPath = normalizeAddConfigPath;
|
|
22
|
+
//# sourceMappingURL=normalizeAddConfigPath.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalizeAddConfigPath.js","sourceRoot":"","sources":["../../../../../packages/typescript-resolver-files/src/normalizeAddConfigPath/normalizeAddConfigPath.ts"],"names":[],"mappings":";;;AAAA,6BAA6B;AAG7B;;;;;GAKG;AACI,MAAM,sBAAsB,GAAG,CAAC,EACrC,GAAG,EACH,aAAa,GAId,EAA+C,EAAE;IAChD,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,SAAS,CAAC;KAClB;IAED,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAElD,CAAC,GAAG,EAAE,CAAC,gBAAgB,EAAE,MAAM,CAAC,EAAE,EAAE;QACpC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC,GAAG,MAAM,CAAC;QAC/D,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,iBAAiB,CAAC;AAC3B,CAAC,CAAC;AAnBW,QAAA,sBAAsB,0BAmBjC"}
|
package/src/preset.js
CHANGED
|
@@ -18,6 +18,7 @@ const addVirtualTypesFileToTsMorphProject_1 = require("./addVirtualTypesFileToTs
|
|
|
18
18
|
const parseTypeMappers_1 = require("./parseTypeMappers");
|
|
19
19
|
const validatePresetConfig_1 = require("./validatePresetConfig");
|
|
20
20
|
const validateAndMergeParsedConfigs_1 = require("./validateAndMergeParsedConfigs");
|
|
21
|
+
const normalizeAddConfigPath_1 = require("./normalizeAddConfigPath");
|
|
21
22
|
exports.presetName = '@eddeee888/gcg-typescript-resolver-files';
|
|
22
23
|
exports.preset = {
|
|
23
24
|
buildGeneratesSection: ({ schema, schemaAst, presetConfig: rawPresetConfig, baseOutputDir, profiler = (0, plugin_helpers_1.createNoopProfiler)(), }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -28,8 +29,9 @@ exports.preset = {
|
|
|
28
29
|
if (!Array.isArray(sources) || sources.length === 0) {
|
|
29
30
|
throw new Error('Empty Sources. Make sure schema files are parsed correctly.');
|
|
30
31
|
}
|
|
31
|
-
const { resolverTypesPath: relativeResolverTypesPathFromBaseOutputDir, resolverRelativeTargetDir, mappersFileExtension: typeMappersFileExtension, mappersSuffix: typeMappersSuffix, resolverMainFile, resolverMainFileMode, resolverGeneration, typeDefsFilePath, typeDefsFileMode, scalarsModule, scalarsOverrides, mode, whitelistedModules, blacklistedModules, externalResolvers, typesPluginsConfig, tsMorphProjectOptions, fixObjectTypeResolvers, emitLegacyCommonJSImports, } = (0, validatePresetConfig_1.validatePresetConfig)(rawPresetConfig);
|
|
32
|
+
const { add, resolverTypesPath: relativeResolverTypesPathFromBaseOutputDir, resolverRelativeTargetDir, mappersFileExtension: typeMappersFileExtension, mappersSuffix: typeMappersSuffix, resolverMainFile, resolverMainFileMode, resolverGeneration, typeDefsFilePath, typeDefsFileMode, scalarsModule, scalarsOverrides, mode, whitelistedModules, blacklistedModules, externalResolvers, typesPluginsConfig, tsMorphProjectOptions, fixObjectTypeResolvers, emitLegacyCommonJSImports, } = (0, validatePresetConfig_1.validatePresetConfig)(rawPresetConfig);
|
|
32
33
|
const resolverTypesPath = path.posix.join(baseOutputDir, relativeResolverTypesPathFromBaseOutputDir);
|
|
34
|
+
const normalizedAdd = (0, normalizeAddConfigPath_1.normalizeAddConfigPath)({ add, baseOutputDir });
|
|
33
35
|
const { sourceMap } = (0, parseSources_1.parseSources)(sources);
|
|
34
36
|
const tsMorphProject = yield profiler.run(() => tslib_1.__awaiter(void 0, void 0, void 0, function* () { return new ts_morph_1.Project(tsMorphProjectOptions); }), createProfilerRunName('Initialising ts-morph project'));
|
|
35
37
|
const typeMappersMap = yield profiler.run(() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -58,7 +60,7 @@ exports.preset = {
|
|
|
58
60
|
parsedGraphQLSchemaMeta,
|
|
59
61
|
});
|
|
60
62
|
// typescript and typescript-resolvers plugins config
|
|
61
|
-
const resolverTypesConfig = (0, gcg_server_config_1.defineConfig)(Object.assign(Object.assign({ emitLegacyCommonJSImports }, typesPluginsConfig), { scalars: mergedConfig.scalarTypes, mappers: Object.assign(Object.assign({}, mergedConfig.typeMappers), typesPluginsConfig.mappers) }));
|
|
63
|
+
const resolverTypesConfig = (0, gcg_server_config_1.defineConfig)(Object.assign(Object.assign({ emitLegacyCommonJSImports }, typesPluginsConfig), { scalars: mergedConfig.scalarTypes, mappers: Object.assign(Object.assign({}, mergedConfig.typeMappers), typesPluginsConfig.mappers), namingConvention: 'keep' }));
|
|
62
64
|
// typesSourceFile is the virtual `types.generated.ts`
|
|
63
65
|
// This is useful when we need to do static analysis as most types come from this file
|
|
64
66
|
// e.g. comparing mappers field type vs schema object field type
|
|
@@ -67,6 +69,7 @@ exports.preset = {
|
|
|
67
69
|
schemaAst,
|
|
68
70
|
resolverTypesConfig,
|
|
69
71
|
resolverTypesPath,
|
|
72
|
+
addConfig: normalizedAdd === null || normalizedAdd === void 0 ? void 0 : normalizedAdd[resolverTypesPath],
|
|
70
73
|
}), createProfilerRunName('addVirtualTypesFileToTsMorphProject'));
|
|
71
74
|
const graphQLObjectTypeResolversToGenerate = yield profiler.run(() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
72
75
|
return (0, getGraphQLObjectTypeResolversToGenerate_1.getGraphQLObjectTypeResolversToGenerate)({
|
|
@@ -75,13 +78,23 @@ exports.preset = {
|
|
|
75
78
|
typeMappersMap,
|
|
76
79
|
});
|
|
77
80
|
}), createProfilerRunName('graphQLObjectTypeResolversToGenerate'));
|
|
81
|
+
const resolverTypesFilePlugins = [
|
|
82
|
+
{ typescript: {} },
|
|
83
|
+
{ ['typescript-resolvers']: {} },
|
|
84
|
+
];
|
|
85
|
+
if (normalizedAdd === null || normalizedAdd === void 0 ? void 0 : normalizedAdd[resolverTypesPath]) {
|
|
86
|
+
resolverTypesFilePlugins.push({
|
|
87
|
+
add: normalizedAdd[resolverTypesPath],
|
|
88
|
+
});
|
|
89
|
+
}
|
|
78
90
|
const resolverTypesFile = {
|
|
79
91
|
filename: resolverTypesPath,
|
|
80
92
|
pluginMap: {
|
|
81
93
|
typescript: typeScriptPlugin,
|
|
82
94
|
'typescript-resolvers': typeScriptResolversPlugin,
|
|
95
|
+
add: addPlugin,
|
|
83
96
|
},
|
|
84
|
-
plugins:
|
|
97
|
+
plugins: resolverTypesFilePlugins,
|
|
85
98
|
config: resolverTypesConfig,
|
|
86
99
|
schema,
|
|
87
100
|
documents: [],
|
package/src/preset.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preset.js","sourceRoot":"","sources":["../../../../packages/typescript-resolver-files/src/preset.ts"],"names":[],"mappings":";;;;AAAA,6BAA6B;AAC7B,kDAAkD;AAClD,gEAAgE;AAChE,mFAAmF;AACnF,oEAGyC;AACzC,uCAAmC;AACnC,
|
|
1
|
+
{"version":3,"file":"preset.js","sourceRoot":"","sources":["../../../../packages/typescript-resolver-files/src/preset.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import type { AddPluginConfig } from '@graphql-codegen/add/typings/config';
|
|
1
2
|
import * as typeScriptPlugin from '@graphql-codegen/typescript';
|
|
2
3
|
import * as typeScriptResolversPlugin from '@graphql-codegen/typescript-resolvers';
|
|
3
4
|
import type { ProjectOptions } from 'ts-morph';
|
|
4
|
-
type ParsedTypesPluginsConfig = Omit<typeScriptPlugin.TypeScriptPluginConfig & typeScriptResolversPlugin.TypeScriptResolversPluginConfig, 'scalars' | 'emitLegacyCommonJSImports'>;
|
|
5
|
+
type ParsedTypesPluginsConfig = Omit<typeScriptPlugin.TypeScriptPluginConfig & typeScriptResolversPlugin.TypeScriptResolversPluginConfig, 'scalars' | 'emitLegacyCommonJSImports' | 'namingConvention'>;
|
|
5
6
|
type ConfigMode = 'merged' | 'modules';
|
|
6
7
|
type ResolverMainFileMode = 'merged' | 'modules';
|
|
7
8
|
export type TypeDefsFileMode = 'merged' | 'mergedWhitelisted' | 'modules';
|
|
@@ -12,6 +13,7 @@ export type ScalarsOverridesType = string | {
|
|
|
12
13
|
output: string;
|
|
13
14
|
};
|
|
14
15
|
export interface ParsedPresetConfig {
|
|
16
|
+
add?: Record<string, AddPluginConfig>;
|
|
15
17
|
resolverTypesPath: string;
|
|
16
18
|
resolverRelativeTargetDir: string;
|
|
17
19
|
resolverMainFile: string;
|
|
@@ -44,6 +46,7 @@ export interface ParsedPresetConfig {
|
|
|
44
46
|
emitLegacyCommonJSImports: boolean;
|
|
45
47
|
}
|
|
46
48
|
export interface RawPresetConfig {
|
|
49
|
+
add?: Record<string, unknown>;
|
|
47
50
|
resolverTypesPath?: string;
|
|
48
51
|
resolverRelativeTargetDir?: string;
|
|
49
52
|
resolverMainFile?: string;
|
|
@@ -68,6 +71,7 @@ export interface RawPresetConfig {
|
|
|
68
71
|
emitLegacyCommonJSImports?: boolean;
|
|
69
72
|
}
|
|
70
73
|
export interface TypedPresetConfig extends RawPresetConfig {
|
|
74
|
+
add?: Record<string, AddPluginConfig>;
|
|
71
75
|
mode?: ConfigMode;
|
|
72
76
|
resolverMainFileMode?: ResolverMainFileMode;
|
|
73
77
|
typeDefsFileMode?: TypeDefsFileMode;
|
|
@@ -75,5 +79,5 @@ export interface TypedPresetConfig extends RawPresetConfig {
|
|
|
75
79
|
typesPluginsConfig?: ParsedTypesPluginsConfig;
|
|
76
80
|
resolverGeneration?: ResolverGeneration;
|
|
77
81
|
}
|
|
78
|
-
export declare const validatePresetConfig: ({ resolverTypesPath, resolverRelativeTargetDir, resolverMainFile, resolverMainFileMode, resolverGeneration, typeDefsFilePath, typeDefsFileMode: inputTypeDefsFileMode, mappersFileExtension, mappersSuffix, scalarsModule, scalarsOverrides, mode, whitelistedModules, blacklistedModules, externalResolvers, typesPluginsConfig, tsConfigFilePath, fixObjectTypeResolvers, emitLegacyCommonJSImports, }: RawPresetConfig) => ParsedPresetConfig;
|
|
82
|
+
export declare const validatePresetConfig: ({ add, resolverTypesPath, resolverRelativeTargetDir, resolverMainFile, resolverMainFileMode, resolverGeneration, typeDefsFilePath, typeDefsFileMode: inputTypeDefsFileMode, mappersFileExtension, mappersSuffix, scalarsModule, scalarsOverrides, mode, whitelistedModules, blacklistedModules, externalResolvers, typesPluginsConfig, tsConfigFilePath, fixObjectTypeResolvers, emitLegacyCommonJSImports, }: RawPresetConfig) => ParsedPresetConfig;
|
|
79
83
|
export {};
|
|
@@ -11,7 +11,7 @@ const defaultResolverRelativeTargetDirMap = {
|
|
|
11
11
|
};
|
|
12
12
|
const defaultTypeDefsFilePath = './typeDefs.generated.ts';
|
|
13
13
|
const defaultScalarsModule = 'graphql-scalars';
|
|
14
|
-
const validatePresetConfig = ({ resolverTypesPath = './types.generated.ts', resolverRelativeTargetDir, resolverMainFile = 'resolvers.generated.ts', resolverMainFileMode = 'merged', resolverGeneration = 'recommended', typeDefsFilePath = defaultTypeDefsFilePath, typeDefsFileMode: inputTypeDefsFileMode = 'merged', mappersFileExtension = '.mappers.ts', mappersSuffix = 'Mapper', scalarsModule = 'graphql-scalars', scalarsOverrides = {}, mode = 'modules', whitelistedModules, blacklistedModules, externalResolvers = {}, typesPluginsConfig = {}, tsConfigFilePath = './tsconfig.json', fixObjectTypeResolvers = 'smart', emitLegacyCommonJSImports = true, }) => {
|
|
14
|
+
const validatePresetConfig = ({ add, resolverTypesPath = './types.generated.ts', resolverRelativeTargetDir, resolverMainFile = 'resolvers.generated.ts', resolverMainFileMode = 'merged', resolverGeneration = 'recommended', typeDefsFilePath = defaultTypeDefsFilePath, typeDefsFileMode: inputTypeDefsFileMode = 'merged', mappersFileExtension = '.mappers.ts', mappersSuffix = 'Mapper', scalarsModule = 'graphql-scalars', scalarsOverrides = {}, mode = 'modules', whitelistedModules, blacklistedModules, externalResolvers = {}, typesPluginsConfig = {}, tsConfigFilePath = './tsconfig.json', fixObjectTypeResolvers = 'smart', emitLegacyCommonJSImports = true, }) => {
|
|
15
15
|
if (mode !== 'merged' && mode !== 'modules') {
|
|
16
16
|
throw new Error(utils_1.fmt.error('presetConfig.mode must be "merged" or "modules" (default is "modules")', 'Validation'));
|
|
17
17
|
}
|
|
@@ -84,7 +84,9 @@ const validatePresetConfig = ({ resolverTypesPath = './types.generated.ts', reso
|
|
|
84
84
|
console.warn(utils_1.fmt.warn(`Unable to find TypeScript config at ${absoluteTsConfigFilePath}. Use presetConfig.tsConfigFilePath to set a custom value. Otherwise, type analysis may not work correctly.`));
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
|
+
const validatedAdd = validateAddOption(add);
|
|
87
88
|
return {
|
|
89
|
+
add: validatedAdd,
|
|
88
90
|
resolverTypesPath,
|
|
89
91
|
resolverRelativeTargetDir: finalResolverRelativeTargetDir,
|
|
90
92
|
resolverMainFile,
|
|
@@ -114,7 +116,10 @@ const validateTypesPluginsConfig = (config) => {
|
|
|
114
116
|
if ('emitLegacyCommonJSImports' in config) {
|
|
115
117
|
throw new Error(utils_1.fmt.error('presetConfig.typesPluginsConfig.emitLegacyCommonJSImports is not supported. Use presetConfig.emitLegacyCommonJSImports instead.', 'Validation'));
|
|
116
118
|
}
|
|
117
|
-
|
|
119
|
+
if ('namingConvention' in config) {
|
|
120
|
+
throw new Error(utils_1.fmt.error("presetConfig.typesPluginsConfig.namingConvention is not currently supported. This is set as `namingConvention: 'keep'`.", 'Validation'));
|
|
121
|
+
}
|
|
122
|
+
const { scalars: _, emitLegacyCommonJSImports: __, namingConvention: ___ } = config, rest = tslib_1.__rest(config, ["scalars", "emitLegacyCommonJSImports", "namingConvention"]);
|
|
118
123
|
return rest;
|
|
119
124
|
};
|
|
120
125
|
const parseResolverGeneration = (resolverGeneration) => {
|
|
@@ -150,4 +155,19 @@ const parseResolverGeneration = (resolverGeneration) => {
|
|
|
150
155
|
interface: false,
|
|
151
156
|
};
|
|
152
157
|
};
|
|
158
|
+
const validateAddOption = (add) => {
|
|
159
|
+
if (!add) {
|
|
160
|
+
return undefined;
|
|
161
|
+
}
|
|
162
|
+
Object.entries(add).forEach(([_, pluginConfig]) => {
|
|
163
|
+
if (typeof pluginConfig !== 'object' || pluginConfig === null) {
|
|
164
|
+
throw new Error(utils_1.fmt.error('presetConfig.add must be an object', 'Validation'));
|
|
165
|
+
}
|
|
166
|
+
if (!('content' in pluginConfig)) {
|
|
167
|
+
throw new Error(utils_1.fmt.error('presetConfig.add must contain a "content" property', 'Validation'));
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
// TODO: a bit hacky here but what's a good way to coerce this type? 🤔
|
|
171
|
+
return add;
|
|
172
|
+
};
|
|
153
173
|
//# sourceMappingURL=validatePresetConfig.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validatePresetConfig.js","sourceRoot":"","sources":["../../../../../packages/typescript-resolver-files/src/validatePresetConfig/validatePresetConfig.ts"],"names":[],"mappings":";;;;AAAA,6BAA6B;AAC7B,yBAAyB;
|
|
1
|
+
{"version":3,"file":"validatePresetConfig.js","sourceRoot":"","sources":["../../../../../packages/typescript-resolver-files/src/validatePresetConfig/validatePresetConfig.ts"],"names":[],"mappings":"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"}
|