@eddeee888/gcg-typescript-resolver-files 0.1.1 → 0.2.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 CHANGED
@@ -78,6 +78,7 @@ Running codegen will generate the following files:
78
78
  - `src/graphql/modules/user/resolvers/User.ts`
79
79
  - `src/graphql/modules/user/resolvers/Address.ts`
80
80
  - `src/graphql/modules/resolvers.generated.ts`
81
+ - `src/graphql/modules/typeDefs.generated.ts`
81
82
  - `src/graphql/modules/types.generated.ts`
82
83
 
83
84
  ## Config
@@ -88,6 +89,7 @@ Running codegen will generate the following files:
88
89
  | `resolverTypesPath` | `string` | (Default: `./types.generated.ts`) Relative path to type file generated by `typescript-resolvers` plugin. |
89
90
  | `resolverRelativeTargetDir` | `string` | (Default: `resolvers`) Relative path to target dir. For `config.mode=merged`, files will be generated into `<baseOutputDir>/<resolverRelativeTargetDir>`. For `config.mode=modules`, files will be generated into `<baseOutputDir>/<moduleName>/<resolverRelativeTargetDir>` |
90
91
  | `resolverMainFile` | `string` | (Default: `resolvers.generated.ts`) File that puts all generated resolvers together. Relative from `baseOutputDir` |
92
+ | `typeDefsFilePath` | `string` or `boolean` | (Default: `./typeDefs.generated.ts`) Merged type defs from all sources. Relative from `baseOutputDir`. If value is `false` or empty string, the file is not generated. |
91
93
  | `whitelistedModules` | `Array<string>` | (Only works with `config.mode=modules`) Whitelists modules to generate files and entries in main file. By default all modules are whitelisted. Useful for gradual migrations. |
92
94
  | `blacklistedModules` | `Array<string>` | (Only works with `config.mode=modules`) Blacklists modules to avoid generate files and entries in main file. Useful for gradual migrations. |
93
95
  | `externalResolvers` | `Record<string, string>` | Map of relative or absolute path (prefixed with `~`) to external or existing resolvers. e.g. `DateTime: ~graphql-scalars#DateTimeResolver`, `Query.me: '~@org/meResolver#default as meResolver'`, `User: 'otherResolvers#User as UserResolver'`. |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eddeee888/gcg-typescript-resolver-files",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/eddeee888/graphql-code-generator-plugins.git",
@@ -24,14 +24,14 @@
24
24
  "author": "Eddy Nguyen <ch@eddeee888.me>",
25
25
  "license": "MIT",
26
26
  "peerDependencies": {
27
- "graphql": "^15.0.0 || ^16.0.0",
28
- "graphql-scalars": "^1.20.1"
27
+ "graphql": "^15.0.0 || ^16.0.0"
29
28
  },
30
29
  "dependencies": {
31
30
  "@graphql-codegen/add": "^3.2.1",
32
31
  "@graphql-codegen/plugin-helpers": "^2.7.1",
33
32
  "@graphql-codegen/typescript": "^2.8.1",
34
33
  "@graphql-codegen/typescript-resolvers": "^2.7.5",
34
+ "graphql-scalars": "^1.20.1",
35
35
  "ts-morph": "^16.0.0"
36
36
  },
37
37
  "publishConfig": {
@@ -0,0 +1,5 @@
1
+ interface GenerateTypeDefsContentParams {
2
+ mergedSDL: string;
3
+ }
4
+ export declare const generateTypeDefsContent: ({ mergedSDL, }: GenerateTypeDefsContentParams) => string;
5
+ export {};
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateTypeDefsContent = void 0;
4
+ const graphql_1 = require("graphql");
5
+ const generateTypeDefsContent = ({ mergedSDL, }) => {
6
+ const documentNode = (0, graphql_1.parse)(mergedSDL);
7
+ const documentNodeString = JSON.stringify(documentNode);
8
+ return `import type { DocumentNode } from 'graphql';
9
+ export const typeDefs = ${documentNodeString} as unknown as DocumentNode`;
10
+ };
11
+ exports.generateTypeDefsContent = generateTypeDefsContent;
12
+ //# sourceMappingURL=generateTypeDefsContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateTypeDefsContent.js","sourceRoot":"","sources":["../../../../../packages/typescript-resolver-files/src/generateTypeDefsContent/generateTypeDefsContent.ts"],"names":[],"mappings":";;;AAAA,qCAAgC;AAMzB,MAAM,uBAAuB,GAAG,CAAC,EACtC,SAAS,GACqB,EAAU,EAAE;IAC1C,MAAM,YAAY,GAAG,IAAA,eAAK,EAAC,SAAS,CAAC,CAAC;IACtC,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAExD,OAAO;4BACmB,kBAAkB,6BAA6B,CAAC;AAC5E,CAAC,CAAC;AARW,QAAA,uBAAuB,2BAQlC"}
@@ -0,0 +1 @@
1
+ export * from './generateTypeDefsContent';
@@ -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("./generateTypeDefsContent"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/typescript-resolver-files/src/generateTypeDefsContent/index.ts"],"names":[],"mappings":";;;AAAA,oEAA0C"}
package/src/preset.js CHANGED
@@ -8,6 +8,7 @@ const typeScriptResolversPlugin = require("@graphql-codegen/typescript-resolvers
8
8
  const parseSources_1 = require("./parseSources");
9
9
  const getPluginsConfig_1 = require("./getPluginsConfig");
10
10
  const generateResolverFiles_1 = require("./generateResolverFiles");
11
+ const generateTypeDefsContent_1 = require("./generateTypeDefsContent");
11
12
  const parseTypeMappers_1 = require("./parseTypeMappers");
12
13
  const validatePresetConfig_1 = require("./validatePresetConfig");
13
14
  exports.preset = {
@@ -19,15 +20,16 @@ exports.preset = {
19
20
  if (!Array.isArray(sources) || sources.length === 0) {
20
21
  throw new Error('Empty Sources. Make sure schema files are parsed correctly.');
21
22
  }
22
- const { resolverTypesPath: relativeResolverTypesPathFromBaseOutputDir, resolverRelativeTargetDir, mappersFileExtension: typeMappersFileExtension, mappersSuffix: typeMappersSuffix, resolverMainFile, mode, whitelistedModules, blacklistedModules, externalResolvers, typesPluginsConfig, } = (0, validatePresetConfig_1.validatePresetConfig)(rawPresetConfig);
23
+ const { resolverTypesPath: relativeResolverTypesPathFromBaseOutputDir, resolverRelativeTargetDir, mappersFileExtension: typeMappersFileExtension, mappersSuffix: typeMappersSuffix, resolverMainFile, typeDefsFilePath, mode, whitelistedModules, blacklistedModules, externalResolvers, typesPluginsConfig, } = (0, validatePresetConfig_1.validatePresetConfig)(rawPresetConfig);
23
24
  const resolverTypesPath = path.join(baseOutputDir, relativeResolverTypesPathFromBaseOutputDir);
24
- const { sourceMap } = (0, parseSources_1.parseSources)(sources);
25
+ const { sourceMap, mergedSDL } = (0, parseSources_1.parseSources)(sources);
25
26
  const typeMappersMap = (0, parseTypeMappers_1.parseTypeMappers)({
26
27
  sourceMap,
27
28
  resolverTypesPath,
28
29
  typeMappersFileExtension,
29
30
  typeMappersSuffix,
30
31
  });
32
+ const generatesSection = [];
31
33
  // typescript and typescript-resolvers plugins config
32
34
  const { defaultScalarTypesMap, defaultScalarExternalResolvers, defaultTypeMappers, } = (0, getPluginsConfig_1.getPluginsConfig)({
33
35
  schemaAst,
@@ -47,6 +49,23 @@ exports.preset = {
47
49
  schema,
48
50
  documents: [],
49
51
  };
52
+ generatesSection.push(resolverTypesFile);
53
+ // typeDefs
54
+ if (typeDefsFilePath) {
55
+ const typeDefsFile = {
56
+ filename: path.join(baseOutputDir, typeDefsFilePath),
57
+ pluginMap: { add: addPlugin },
58
+ plugins: [
59
+ {
60
+ add: { content: (0, generateTypeDefsContent_1.generateTypeDefsContent)({ mergedSDL }) },
61
+ },
62
+ ],
63
+ config: {},
64
+ schema,
65
+ documents: [],
66
+ };
67
+ generatesSection.push(typeDefsFile);
68
+ }
50
69
  // resolver files
51
70
  const result = {
52
71
  files: {},
@@ -67,8 +86,7 @@ exports.preset = {
67
86
  },
68
87
  result,
69
88
  });
70
- // Prepare `generatesSection`
71
- const generatesSection = Object.entries(result.files).map(([filename, { content }]) => ({
89
+ const resolverFilesGenerateOptions = Object.entries(result.files).map(([filename, { content }]) => ({
72
90
  filename,
73
91
  pluginMap: { add: addPlugin },
74
92
  plugins: [{ add: { content } }],
@@ -76,8 +94,7 @@ exports.preset = {
76
94
  schema,
77
95
  documents: [],
78
96
  }));
79
- generatesSection.push(resolverTypesFile);
80
- return generatesSection;
97
+ return [...resolverFilesGenerateOptions, ...generatesSection];
81
98
  },
82
99
  };
83
100
  //# sourceMappingURL=preset.js.map
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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"}