@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.
Files changed (40) hide show
  1. package/README.md +23 -0
  2. package/package.json +2 -2
  3. package/src/addVirtualTypesFileToTsMorphProject/addVirtualTypesFileToTsMorphProject.d.ts +3 -1
  4. package/src/addVirtualTypesFileToTsMorphProject/addVirtualTypesFileToTsMorphProject.js +27 -7
  5. package/src/addVirtualTypesFileToTsMorphProject/addVirtualTypesFileToTsMorphProject.js.map +1 -1
  6. package/src/generateResolverFiles/addExternalResolverImport.d.ts +7 -0
  7. package/src/generateResolverFiles/addExternalResolverImport.js +39 -17
  8. package/src/generateResolverFiles/addExternalResolverImport.js.map +1 -1
  9. package/src/generateResolverFiles/addResolverMainFiles.js +65 -18
  10. package/src/generateResolverFiles/addResolverMainFiles.js.map +1 -1
  11. package/src/generateResolverFiles/generateResolverFiles.js +39 -0
  12. package/src/generateResolverFiles/generateResolverFiles.js.map +1 -1
  13. package/src/generateResolverFiles/getVariableStatementWithExpectedIdentifier.js +14 -0
  14. package/src/generateResolverFiles/getVariableStatementWithExpectedIdentifier.js.map +1 -1
  15. package/src/generateResolverFiles/handleGraphQLInterfaceType.js +3 -1
  16. package/src/generateResolverFiles/handleGraphQLInterfaceType.js.map +1 -1
  17. package/src/generateResolverFiles/handleGraphQLObjectType.d.ts +3 -1
  18. package/src/generateResolverFiles/handleGraphQLObjectType.js +24 -4
  19. package/src/generateResolverFiles/handleGraphQLObjectType.js.map +1 -1
  20. package/src/generateResolverFiles/handleGraphQLRootObjectTypeField.js +5 -3
  21. package/src/generateResolverFiles/handleGraphQLRootObjectTypeField.js.map +1 -1
  22. package/src/generateResolverFiles/handleGraphQLScalarType.js +1 -0
  23. package/src/generateResolverFiles/handleGraphQLScalarType.js.map +1 -1
  24. package/src/generateResolverFiles/handleGraphQLUnionType.js +1 -0
  25. package/src/generateResolverFiles/handleGraphQLUnionType.js.map +1 -1
  26. package/src/generateResolverFiles/types.d.ts +10 -6
  27. package/src/generateResolverFiles/visitNamedType.d.ts +5 -1
  28. package/src/generateResolverFiles/visitNamedType.js +27 -10
  29. package/src/generateResolverFiles/visitNamedType.js.map +1 -1
  30. package/src/normalizeAddConfigPath/index.d.ts +1 -0
  31. package/src/normalizeAddConfigPath/index.js +5 -0
  32. package/src/normalizeAddConfigPath/index.js.map +1 -0
  33. package/src/normalizeAddConfigPath/normalizeAddConfigPath.d.ts +11 -0
  34. package/src/normalizeAddConfigPath/normalizeAddConfigPath.js +22 -0
  35. package/src/normalizeAddConfigPath/normalizeAddConfigPath.js.map +1 -0
  36. package/src/preset.js +16 -3
  37. package/src/preset.js.map +1 -1
  38. package/src/validatePresetConfig/validatePresetConfig.d.ts +6 -2
  39. package/src/validatePresetConfig/validatePresetConfig.js +22 -2
  40. 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.6.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.1",
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 = typescriptResult.prepend) === null || _a === void 0 ? void 0 : _a.join('\n')}
31
- ${(_b = typescriptResolversResult.prepend) === null || _b === void 0 ? void 0 : _b.join('\n')}
32
- ${typescriptResult.content}${typescriptResolversResult.content}`,
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":";;;;AAAA,gEAAgE;AAChE,mFAAmF;AAK5E,MAAM,mCAAmC,GAAG,CAAO,EACxD,cAAc,EACd,SAAS,EACT,iBAAiB,EACjB,mBAAmB,GAMpB,EAAuB,EAAE;IACxB,MAAM,SAAS,GAAG,MAAM,wBAAwB,CAAC;QAC/C,SAAS;QACT,iBAAiB;QACjB,mBAAmB;KACpB,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;AAxBW,QAAA,mCAAmC,uCAwB9C;AAEF;;;GAGG;AACH,MAAM,wBAAwB,GAAG,CAAO,EACtC,SAAS,EACT,iBAAiB,EACjB,mBAAmB,GAKpB,EAGE,EAAE;;IACH,MAAM,CAAC,gBAAgB,EAAE,yBAAyB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACtE,gBAAgB,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,EAAE,mBAAmB,CAAC;QAC3D,yBAAyB,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,EAAE,mBAAmB,CAAC;KACrE,CAAC,CAAC;IAEH,OAAO;QACL,QAAQ,EAAE,iBAAiB;QAC3B,OAAO,EAAE;MACP,MAAA,gBAAgB,CAAC,OAAO,0CAAE,IAAI,CAAC,IAAI,CAAC;MACpC,MAAA,yBAAyB,CAAC,OAAO,0CAAE,IAAI,CAAC,IAAI,CAAC;MAC7C,gBAAgB,CAAC,OAAO,GAAG,yBAAyB,CAAC,OAAO,EAAE;KACjE,CAAC;AACJ,CAAC,CAAA,CAAC"}
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 externalImport = result.externalImports[moduleImport];
28
+ });
29
+ const { importLineMeta, identifierUsages } = result.externalImports[moduleImport];
22
30
  switch (importIdentifier.__type) {
23
31
  case 'default':
24
- if (externalImport.importLineMeta.defaultImport &&
25
- externalImport.importLineMeta.defaultImport !==
26
- importIdentifier.defaultImport) {
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
- externalImport.importLineMeta.defaultImport =
30
- importIdentifier.defaultImport;
36
+ importLineMeta.defaultImport = importIdentifier.defaultImport;
37
+ shouldPushIndentifierUsages = true;
31
38
  break;
32
- case 'named':
33
- externalImport.importLineMeta.namedImports.push(importIdentifier.namedImport);
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
- case 'namedWithAlias':
36
- externalImport.importLineMeta.namedImports.push({
37
- propertyName: importIdentifier.propertyName,
38
- identifierName: importIdentifier.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
- externalImport.identifierUsages.push(identifierUsage);
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":"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"}
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: [file.mainImportIdentifier],
51
+ namedImports: [fieldMapping],
43
52
  emitLegacyCommonJSImports,
44
53
  }));
45
- res[resolverMainFilename].objectTypes.push({
46
- propertyName: file.mainImportIdentifier,
47
- identifierName: file.mainImportIdentifier,
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
- res[resolverMainFilename].objectTypes.push({
95
- propertyName: resolverNameParts[0],
96
- identifierName: usage.identifierName,
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.map((line) => line).join('\n')}
153
+ ${resolverMainFile.importLines.join('\n')}
149
154
  export const ${resolversIdentifier}: ${resolversTypeName} = {
150
155
  ${queries}
151
156
  ${mutations}
152
157
  ${suscriptions}
153
- ${resolverMainFile.objectTypes.map(printObjectMapping).join(',\n')}
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":"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"}
1
+ {"version":3,"file":"addResolverMainFiles.js","sourceRoot":"","sources":["../../../../../packages/typescript-resolver-files/src/generateResolverFiles/addResolverMainFiles.ts"],"names":[],"mappings":"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"}
@@ -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,qCAAuC;AACvC,oCAA+D;AAC/D,iEAA8D;AAC9D,yDAAsD;AACtD,yFAAsF;AACtF,uEAAoE;AACpE,qEAAkE;AAClE,uEAAoE;AACpE,6EAA0E;AAC1E,qDAAwE;AAGjE,MAAM,qBAAqB,GAAG,CACnC,GAAiC,EAC3B,EAAE;IACR,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,CACpD,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,EAAE;;QAC1B,IAAI,IAAA,yBAAiB,EAAC,SAAS,CAAC,EAAE;YAChC,OAAO;SACR;QAED,EAAE;QACF,oBAAoB;QACpB,EAAE;QACF,MAAM,OAAO,GAAoC;YAC/C,mBAAmB,EAAE,mEAAgC;YACrD,UAAU,EAAE,iDAAuB;YACnC,SAAS,EAAE,+CAAsB;YACjC,UAAU,EAAE,iDAAuB;YACnC,aAAa,EAAE,uDAA0B;SAC1C,CAAC;QAEF,IAAI,IAAA,wBAAgB,EAAC,UAAU,CAAC,IAAI,IAAA,sBAAY,EAAC,SAAS,CAAC,EAAE;YAC3D,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,CAC3C,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE;;gBACzB,OAAA,IAAA,+BAAc,EACZ;oBACE,SAAS;oBACT,YAAY,EAAE,SAAS;oBACvB,mBAAmB,EAAE,UAAU;oBAC/B,QAAQ,EAAE,MAAA,SAAS,CAAC,OAAO,0CAAE,GAAG;oBAChC,OAAO;iBACR,EACD,GAAG,CACJ,CAAA;aAAA,CACJ,CAAC;YACF,OAAO;SACR;QAED,IAAA,+BAAc,EACZ;YACE,SAAS;YACT,YAAY,EAAE,SAAS,CAAC,IAAI;YAC5B,mBAAmB,EAAE,IAAI;YACzB,QAAQ,EAAE,MAAA,SAAS,CAAC,OAAO,0CAAE,GAAG;YAChC,OAAO;SACR,EACD,GAAG,CACJ,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,kFAAkF;IAClF,IAAA,mCAAgB,EAAC,GAAG,CAAC,CAAC;IAEtB,wDAAwD;IACxD,IAAA,2CAAoB,EAAC,GAAG,CAAC,CAAC;AAC5B,CAAC,CAAC;AAvDW,QAAA,qBAAqB,yBAuDhC"}
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;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,OAAO;QACL,iBAAiB,EAAE,uCAAuC;QAC1D,UAAU;KACX,CAAC;AACJ,CAAC,CAAC;AA7BW,QAAA,0CAA0C,8CA6BrD"}
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 variableStatement = `export const ${resolverName}: ${resolversTypeMeta.typeString} = { /* Implement ${resolverName} interface logic here */ };`;
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,iBAAiB,CAAC,UAAU,qBAAqB,YAAY,6BAA6B,CAAC;IAEtJ,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;AAlCW,QAAA,0BAA0B,8BAkCrC"}
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"}
@@ -1,2 +1,4 @@
1
1
  import type { GraphQLTypeHandler } from './types';
2
- export declare const handleGraphQLObjectType: GraphQLTypeHandler;
2
+ export declare const handleGraphQLObjectType: GraphQLTypeHandler<null, {
3
+ fieldsToPick?: string[];
4
+ }>;
@@ -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, }, { result, config: { resolverGeneration, graphQLObjectTypeResolversToGenerate, emitLegacyCommonJSImports, }, }) => {
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
- const variableStatement = `export const ${resolverName}: ${resolversTypeMeta.typeString} = {
10
- /* Implement ${resolverName} resolver logic here */
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
- resolversToGenerate: graphQLObjectTypeResolversToGenerate[resolverName], // Array of all resolvers that may need type checking
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,GAAuB,CACzD,EACE,aAAa,EACb,YAAY,EACZ,sBAAsB,EACtB,iBAAiB,EACjB,UAAU,GACX,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,MAAM,iBAAiB,GAAG,gBAAgB,YAAY,KAAK,iBAAiB,CAAC,UAAU;mBACtE,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,mBAAmB,EAAE,oCAAoC,CAAC,YAAY,CAAC,EAAE,qDAAqD;SAC/H;KACF,CAAC;AACJ,CAAC,CAAC;AA5CW,QAAA,uBAAuB,2BA4ClC"}
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
- let variableStatement = `export const ${resolverName}: NonNullable<${resolversTypeMeta.typeString}> = async (_parent, _arg, _ctx) => { ${suggestion} };`;
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}: NonNullable<${resolversTypeMeta.typeString}> = {
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;IAEnF,IAAI,iBAAiB,GAAG,gBAAgB,YAAY,iBAAiB,iBAAiB,CAAC,UAAU,wCAAwC,UAAU,KAAK,CAAC;IACzJ,IAAI,mBAAmB,KAAK,cAAc,EAAE;QAC1C,iBAAiB,GAAG,gBAAgB,YAAY,iBAAiB,iBAAiB,CAAC,UAAU;oDAC7C,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,sBAAsB;SACvB;KACF,CAAC;AACJ,CAAC,CAAC;AAjDW,QAAA,gCAAgC,oCAiD3C"}
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"}
@@ -36,6 +36,7 @@ const handleGraphQLScalarType = ({ fieldFilePath, resolverName, normalizedResolv
36
36
  moduleName,
37
37
  normalizedResolverName,
38
38
  variableStatement,
39
+ resolverTypeString: null,
39
40
  },
40
41
  };
41
42
  };
@@ -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;SAClB;KACF,CAAC;AACJ,CAAC,CAAC;AAxCW,QAAA,uBAAuB,2BAwClC"}
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"}
@@ -22,6 +22,7 @@ const handleGraphQLUnionType = ({ fieldFilePath, resolverName, normalizedResolve
22
22
  meta: {
23
23
  moduleName,
24
24
  normalizedResolverName,
25
+ resolverTypeString: resolversTypeMeta.typeString,
25
26
  variableStatement,
26
27
  },
27
28
  };
@@ -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;AAlCW,QAAA,sBAAsB,0BAkCjC"}
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
- normalizedResolverName: string;
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
- normalizedResolverName: string;
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
- normalizedResolverName: string;
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: string;
85
+ normalizedResolverName: NormalizedResolverName;
82
86
  resolversTypeMeta: {
83
87
  typeNamedImport: `${string}Resolvers`;
84
88
  module: ImportLineMeta['module'];
85
89
  moduleType: ImportLineMeta['moduleType'];
86
- typeString: `${string}Resolvers` | `${RootObjectType}Resolvers['${string}']`;
90
+ typeString: string;
87
91
  };
88
92
  }
89
- export type GraphQLTypeHandler<BelongsToRootObject = null> = (params: GraphQLTypeHandlerParams<BelongsToRootObject>, ctx: GenerateResolverFilesContext) => void;
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 = ({ namedType, resolverName, belongsToRootObject, location, visitor, }, ctx) => {
9
- const normalizedResolverName = normalizeResolverName(resolverName, belongsToRootObject);
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 externalResolverImportSyntax = ctx.config.externalResolvers[normalizedResolverName];
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 visitorHandlerParams = validateAndPrepareForGraphQLTypeHandler({
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
- if (!rootObject) {
120
- return name;
121
- }
122
- return `${rootObject}.${name}`;
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":"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"}
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,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./normalizeAddConfigPath"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -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: [{ typescript: {} }, { ['typescript-resolvers']: {} }],
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":"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"}
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
- const { scalars: _, emitLegacyCommonJSImports: __ } = config, rest = tslib_1.__rest(config, ["scalars", "emitLegacyCommonJSImports"]);
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":"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"}
1
+ {"version":3,"file":"validatePresetConfig.js","sourceRoot":"","sources":["../../../../../packages/typescript-resolver-files/src/validatePresetConfig/validatePresetConfig.ts"],"names":[],"mappings":"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"}