@eddeee888/gcg-typescript-resolver-files 0.0.1 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/README.md +10 -10
- package/package.json +2 -1
- package/src/index.d.ts +1 -1
- package/src/index.js +3 -4
- package/src/index.js.map +1 -1
- package/src/preset.d.ts +11 -0
- package/src/preset.js +76 -0
- package/src/preset.js.map +1 -0
- package/src/run/addExternalResolverImport.d.ts +7 -0
- package/src/run/addExternalResolverImport.js +99 -0
- package/src/run/addExternalResolverImport.js.map +1 -0
- package/src/run/addResolversMainFile.d.ts +2 -8
- package/src/run/addResolversMainFile.js +77 -20
- package/src/run/addResolversMainFile.js.map +1 -1
- package/src/run/fixExistingResolvers.d.ts +2 -2
- package/src/run/fixExistingResolvers.js +5 -5
- package/src/run/fixExistingResolvers.js.map +1 -1
- package/src/run/handleGraphQLObjectType.d.ts +1 -2
- package/src/run/handleGraphQLObjectType.js +10 -15
- package/src/run/handleGraphQLObjectType.js.map +1 -1
- package/src/run/handleGraphQLRootObjectTypeField.d.ts +2 -0
- package/src/run/handleGraphQLRootObjectTypeField.js +25 -0
- package/src/run/handleGraphQLRootObjectTypeField.js.map +1 -0
- package/src/run/handleGraphQLScalarType.d.ts +2 -0
- package/src/run/handleGraphQLScalarType.js +26 -0
- package/src/run/handleGraphQLScalarType.js.map +1 -0
- package/src/run/handleGraphQLUninionType.d.ts +1 -2
- package/src/run/handleGraphQLUninionType.js +10 -14
- package/src/run/handleGraphQLUninionType.js.map +1 -1
- package/src/run/run.d.ts +2 -2
- package/src/run/run.js +43 -29
- package/src/run/run.js.map +1 -1
- package/src/run/visitNamedType.d.ts +15 -0
- package/src/run/visitNamedType.js +102 -0
- package/src/run/visitNamedType.js.map +1 -0
- package/src/types.d.ts +43 -16
- package/src/utils.d.ts +3 -2
- package/src/utils.js +34 -12
- package/src/utils.js.map +1 -1
- package/src/plugin.d.ts +0 -18
- package/src/plugin.js +0 -64
- package/src/plugin.js.map +0 -1
- package/src/run/handleGraphQLRootObjectType.d.ts +0 -3
- package/src/run/handleGraphQLRootObjectType.js +0 -44
- package/src/run/handleGraphQLRootObjectType.js.map +0 -1
- package/src/run/parseLocation.d.ts +0 -7
- package/src/run/parseLocation.js +0 -37
- package/src/run/parseLocation.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @eddeee888/gcg-typescript-resolver-files
|
|
2
2
|
|
|
3
|
+
## 0.0.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 5065768: Turn to preset to better integrate with codegen
|
|
8
|
+
|
|
9
|
+
## 0.0.2
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- 0a99233: Implement generating logic for Scalar type
|
|
14
|
+
- b2fe4da: Implement config.externalResolvers
|
|
15
|
+
|
|
3
16
|
## 0.0.1
|
|
4
17
|
|
|
5
18
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -25,18 +25,18 @@ generates:
|
|
|
25
25
|
- typescript-resolvers
|
|
26
26
|
|
|
27
27
|
src/graphql/resolvers:
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
config:
|
|
28
|
+
preset: '@eddeee888/gcg-typescript-resolver-files'
|
|
29
|
+
presetConfig:
|
|
31
30
|
resolverTypesPath: ./types.generated.ts
|
|
32
31
|
```
|
|
33
32
|
|
|
34
33
|
## Config
|
|
35
34
|
|
|
36
|
-
| Name | Type
|
|
37
|
-
| -------------------- |
|
|
38
|
-
| `resolverTypesPath` | `string`
|
|
39
|
-
| `mode` | `merged` or `modules`
|
|
40
|
-
| `relativeTargetDir` | `string`
|
|
41
|
-
| `mainFile` | `string`
|
|
42
|
-
| `whitelistedModules` | `Array<string>`
|
|
35
|
+
| Name | Type | Description |
|
|
36
|
+
| -------------------- | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
37
|
+
| `resolverTypesPath` | `string` | (Required) Relative path to type file generated by `typescript-resolvers` plugin. |
|
|
38
|
+
| `mode` | `merged` or `modules` | (Default: `modules`) How files are collocated. `modules` detects containing dir of a schema file as "modules", then split resolvers into those modules. `merged` treats `baseOutputDir` as the one and only module and generates resolvers. |
|
|
39
|
+
| `relativeTargetDir` | `string` | Relative path to target dir. For `config.mode=merged`, files will be generated into `<baseOutputDir>/<relativeTargetDir>`. For `config.mode=modules`, files will be generated into `<baseOutputDir>/<moduleName>/<relativeTargetDir>` |
|
|
40
|
+
| `mainFile` | `string` | File that puts all generated resolvers together. Relative from `baseOutputDir` |
|
|
41
|
+
| `whitelistedModules` | `Array<string>` | (Only works with `config.mode=modules`) Whitelists modules to generate files and main file for. Useful for gradual migrations. |
|
|
42
|
+
| `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
package/src/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { preset } from './preset';
|
package/src/index.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
var
|
|
5
|
-
Object.defineProperty(exports, "
|
|
6
|
-
Object.defineProperty(exports, "validate", { enumerable: true, get: function () { return plugin_1.validate; } });
|
|
3
|
+
exports.preset = void 0;
|
|
4
|
+
var preset_1 = require("./preset");
|
|
5
|
+
Object.defineProperty(exports, "preset", { enumerable: true, get: function () { return preset_1.preset; } });
|
|
7
6
|
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/typescript-resolver-files/src/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/typescript-resolver-files/src/index.ts"],"names":[],"mappings":";;;AAAA,mCAAkC;AAAzB,gGAAA,MAAM,OAAA"}
|
package/src/preset.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Types } from '@graphql-codegen/plugin-helpers';
|
|
2
|
+
interface ParsedPresetConfig {
|
|
3
|
+
resolverTypesPath: string;
|
|
4
|
+
relativeTargetDir: string;
|
|
5
|
+
mainFile: string;
|
|
6
|
+
mode: 'merged' | 'modules';
|
|
7
|
+
whitelistedModules: string[];
|
|
8
|
+
externalResolvers: Record<string, string>;
|
|
9
|
+
}
|
|
10
|
+
export declare const preset: Types.OutputPreset<ParsedPresetConfig>;
|
|
11
|
+
export {};
|
package/src/preset.js
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.preset = void 0;
|
|
4
|
+
const path = require("path");
|
|
5
|
+
const addPlugin = require("@graphql-codegen/add");
|
|
6
|
+
const utils_1 = require("./utils");
|
|
7
|
+
const run_1 = require("./run");
|
|
8
|
+
const presetName = '@eddeee888/gcg-typescript-resolver-files';
|
|
9
|
+
exports.preset = {
|
|
10
|
+
buildGeneratesSection: ({ schema, schemaAst, presetConfig: rawPresetConfig, baseOutputDir, }) => {
|
|
11
|
+
if (!schemaAst) {
|
|
12
|
+
throw new Error('Missing schemaAst');
|
|
13
|
+
}
|
|
14
|
+
const sources = schemaAst.extensions.extendedSources;
|
|
15
|
+
if (!Array.isArray(sources) || sources.length === 0) {
|
|
16
|
+
throw new Error('Empty Sources. Make sure schema files are parsed correctly.');
|
|
17
|
+
}
|
|
18
|
+
const sourcesMap = (0, utils_1.parseSources)(sources);
|
|
19
|
+
const { resolverTypesPath: relativeResolverTypesPathFromBaseOutputDir, relativeTargetDir, mainFile, mode, whitelistedModules, externalResolvers, } = validatePresetConfig(rawPresetConfig);
|
|
20
|
+
const resolverTypesPath = path.join(baseOutputDir, relativeResolverTypesPathFromBaseOutputDir);
|
|
21
|
+
const result = {
|
|
22
|
+
files: {},
|
|
23
|
+
externalImports: {},
|
|
24
|
+
};
|
|
25
|
+
(0, run_1.run)({
|
|
26
|
+
config: {
|
|
27
|
+
schema: schemaAst,
|
|
28
|
+
sourcesMap,
|
|
29
|
+
baseOutputDir,
|
|
30
|
+
resolverTypesPath,
|
|
31
|
+
relativeTargetDir,
|
|
32
|
+
mainFile,
|
|
33
|
+
mode,
|
|
34
|
+
whitelistedModules,
|
|
35
|
+
externalResolvers,
|
|
36
|
+
},
|
|
37
|
+
result,
|
|
38
|
+
});
|
|
39
|
+
return Object.entries(result.files).map(([filename, { content }]) => ({
|
|
40
|
+
filename,
|
|
41
|
+
pluginMap: { add: addPlugin },
|
|
42
|
+
plugins: [{ add: { content } }],
|
|
43
|
+
schema,
|
|
44
|
+
config: {},
|
|
45
|
+
documents: [],
|
|
46
|
+
}));
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
const validatePresetConfig = ({ resolverTypesPath, relativeTargetDir = '', mainFile = 'index.ts', mode = 'modules', whitelistedModules, externalResolvers = {}, }) => {
|
|
50
|
+
if (!resolverTypesPath) {
|
|
51
|
+
throw new Error(`Validation Error - ${presetName} - presetConfig.resolverTypesPath is required`);
|
|
52
|
+
}
|
|
53
|
+
if (path.extname(mainFile) === '') {
|
|
54
|
+
throw new Error(`Validation Error - ${presetName} - presetConfig.mainFile must be a valid file name`);
|
|
55
|
+
}
|
|
56
|
+
if (mode !== 'merged' && mode !== 'modules') {
|
|
57
|
+
throw new Error(`Validation Error - ${presetName} - presetConfig.mode must be "merged" or "modules" (default is "modules")`);
|
|
58
|
+
}
|
|
59
|
+
if (whitelistedModules) {
|
|
60
|
+
if (!Array.isArray(whitelistedModules)) {
|
|
61
|
+
throw new Error(`Validation Error - ${presetName} - presetConfig.whitelistedModules must be an array if provided`);
|
|
62
|
+
}
|
|
63
|
+
if (mode !== 'modules') {
|
|
64
|
+
throw new Error(`Validation Error - ${presetName} - presetConfig.whitelistedModules can only be used with presetConfig.mode == "modules"`);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return {
|
|
68
|
+
resolverTypesPath,
|
|
69
|
+
relativeTargetDir,
|
|
70
|
+
mainFile,
|
|
71
|
+
mode: mode,
|
|
72
|
+
whitelistedModules: whitelistedModules || [],
|
|
73
|
+
externalResolvers,
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
//# sourceMappingURL=preset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preset.js","sourceRoot":"","sources":["../../../../packages/typescript-resolver-files/src/preset.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { RunContext } from '../types';
|
|
2
|
+
interface AddExternalResolverImportParams {
|
|
3
|
+
normalizedResolverName: string;
|
|
4
|
+
configImportSyntax: string;
|
|
5
|
+
}
|
|
6
|
+
export declare const addExternalResolverImport: (params: AddExternalResolverImportParams, { result }: RunContext) => void;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addExternalResolverImport = void 0;
|
|
4
|
+
const utils_1 = require("../utils");
|
|
5
|
+
const addExternalResolverImport = (params, { result }) => {
|
|
6
|
+
const { importIdentifier, identifierUsage, moduleImport } = parseImportSyntax(params);
|
|
7
|
+
result.externalImports[moduleImport] =
|
|
8
|
+
result.externalImports[moduleImport] ||
|
|
9
|
+
{
|
|
10
|
+
importLineMeta: {
|
|
11
|
+
isTypeImport: false,
|
|
12
|
+
module: moduleImport,
|
|
13
|
+
namedImports: [],
|
|
14
|
+
defaultImport: undefined,
|
|
15
|
+
},
|
|
16
|
+
identifierUsages: [],
|
|
17
|
+
};
|
|
18
|
+
const externalImport = result.externalImports[moduleImport];
|
|
19
|
+
switch (importIdentifier.__type) {
|
|
20
|
+
case 'default':
|
|
21
|
+
if (externalImport.importLineMeta.defaultImport &&
|
|
22
|
+
externalImport.importLineMeta.defaultImport !==
|
|
23
|
+
importIdentifier.defaultImport) {
|
|
24
|
+
throw new Error(`There can be only one default import from '${moduleImport}'. Current: ${externalImport.importLineMeta.defaultImport}. New: ${importIdentifier.defaultImport}`);
|
|
25
|
+
}
|
|
26
|
+
externalImport.importLineMeta.defaultImport =
|
|
27
|
+
importIdentifier.defaultImport;
|
|
28
|
+
break;
|
|
29
|
+
case 'named':
|
|
30
|
+
externalImport.importLineMeta.namedImports.push(importIdentifier.namedImport);
|
|
31
|
+
break;
|
|
32
|
+
case 'namedWithAlias':
|
|
33
|
+
externalImport.importLineMeta.namedImports.push({
|
|
34
|
+
propertyName: importIdentifier.propertyName,
|
|
35
|
+
identifierName: importIdentifier.identifierName,
|
|
36
|
+
});
|
|
37
|
+
break;
|
|
38
|
+
default:
|
|
39
|
+
// importIdentifier is `never` unless new __type is added
|
|
40
|
+
// i.e. this is here for typesafety
|
|
41
|
+
return importIdentifier;
|
|
42
|
+
}
|
|
43
|
+
externalImport.identifierUsages.push(identifierUsage);
|
|
44
|
+
};
|
|
45
|
+
exports.addExternalResolverImport = addExternalResolverImport;
|
|
46
|
+
const parseImportSyntax = ({ configImportSyntax, normalizedResolverName, }) => {
|
|
47
|
+
const isAbsoluteImport = configImportSyntax[0] === '~';
|
|
48
|
+
const importStringWithoutRelativity = isAbsoluteImport
|
|
49
|
+
? configImportSyntax.slice(1)
|
|
50
|
+
: configImportSyntax;
|
|
51
|
+
const [rawModuleName, importIdentifier] = importStringWithoutRelativity.split('#');
|
|
52
|
+
const moduleImport = isAbsoluteImport
|
|
53
|
+
? rawModuleName
|
|
54
|
+
: (0, utils_1.normalizeRelativePath)(rawModuleName);
|
|
55
|
+
if (importIdentifier.startsWith('default')) {
|
|
56
|
+
if (!importIdentifier.startsWith('default as ')) {
|
|
57
|
+
throw new Error(`Invalid import syntax. "${configImportSyntax}": Default import must include identifier name e.g. moduleName#default as Identifier`);
|
|
58
|
+
}
|
|
59
|
+
const [_, defaultImportIdentifier] = importIdentifier.split('default as ');
|
|
60
|
+
return {
|
|
61
|
+
importIdentifier: {
|
|
62
|
+
__type: 'default',
|
|
63
|
+
defaultImport: defaultImportIdentifier,
|
|
64
|
+
},
|
|
65
|
+
identifierUsage: {
|
|
66
|
+
identifierName: defaultImportIdentifier,
|
|
67
|
+
normalizedResolverName,
|
|
68
|
+
},
|
|
69
|
+
moduleImport,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
const namedImportParts = importIdentifier.split(' as ');
|
|
73
|
+
if (namedImportParts.length === 1) {
|
|
74
|
+
return {
|
|
75
|
+
importIdentifier: {
|
|
76
|
+
__type: 'named',
|
|
77
|
+
namedImport: namedImportParts[0],
|
|
78
|
+
},
|
|
79
|
+
identifierUsage: {
|
|
80
|
+
identifierName: namedImportParts[0],
|
|
81
|
+
normalizedResolverName,
|
|
82
|
+
},
|
|
83
|
+
moduleImport,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
return {
|
|
87
|
+
importIdentifier: {
|
|
88
|
+
__type: 'namedWithAlias',
|
|
89
|
+
propertyName: namedImportParts[0],
|
|
90
|
+
identifierName: namedImportParts[1],
|
|
91
|
+
},
|
|
92
|
+
identifierUsage: {
|
|
93
|
+
identifierName: namedImportParts[1],
|
|
94
|
+
normalizedResolverName,
|
|
95
|
+
},
|
|
96
|
+
moduleImport,
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
//# sourceMappingURL=addExternalResolverImport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addExternalResolverImport.js","sourceRoot":"","sources":["../../../../../packages/typescript-resolver-files/src/run/addExternalResolverImport.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,2 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
baseOutputDir: string;
|
|
4
|
-
resolverTypesPath: string;
|
|
5
|
-
mainFile: string;
|
|
6
|
-
}
|
|
7
|
-
export declare const addResolversMainFile: ({ baseOutputDir, resolverTypesPath, mainFile }: AddResolversMainFileParams, result: RunResult) => void;
|
|
8
|
-
export {};
|
|
1
|
+
import type { RunContext } from '../types';
|
|
2
|
+
export declare const addResolversMainFile: ({ config: { baseOutputDir, resolverTypesPath, mainFile }, result, }: RunContext) => void;
|
|
@@ -3,27 +3,44 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.addResolversMainFile = void 0;
|
|
4
4
|
const path = require("path");
|
|
5
5
|
const utils_1 = require("../utils");
|
|
6
|
-
const addResolversMainFile = ({ baseOutputDir, resolverTypesPath, mainFile }, result) => {
|
|
6
|
+
const addResolversMainFile = ({ config: { baseOutputDir, resolverTypesPath, mainFile }, result, }) => {
|
|
7
7
|
const filename = path.join(baseOutputDir, mainFile.split('/').join(path.sep));
|
|
8
8
|
const outputDir = path.dirname(filename);
|
|
9
|
-
// Make sure to create target dir to main file, in case mainFile is a path!
|
|
10
|
-
result.dirs[outputDir] = true;
|
|
11
9
|
const relativePathToResolverTypes = (0, utils_1.relativeModulePath)(outputDir, resolverTypesPath);
|
|
12
|
-
const pathToResolverModule = (0, utils_1.printImportModule)(relativePathToResolverTypes);
|
|
13
10
|
const resolversDetails = Object.entries(result.files).reduce((res, [filepath, file]) => {
|
|
14
11
|
if (file.__filetype === 'file') {
|
|
15
12
|
return res;
|
|
16
13
|
}
|
|
17
|
-
|
|
18
|
-
res.importLines.push(`import { ${file.mainImportIdentifier} } from '${pathToModule}'`);
|
|
14
|
+
// Non Root Object fields that was generated
|
|
19
15
|
if (!file.meta.belongsToRootObject) {
|
|
20
|
-
res.
|
|
16
|
+
res.importLines.push((0, utils_1.printImportLine)({
|
|
17
|
+
isTypeImport: false,
|
|
18
|
+
module: (0, utils_1.relativeModulePath)(outputDir, filepath),
|
|
19
|
+
namedImports: [file.mainImportIdentifier],
|
|
20
|
+
}));
|
|
21
|
+
res.objectTypes.push({
|
|
22
|
+
propertyName: file.mainImportIdentifier,
|
|
23
|
+
identifierName: file.mainImportIdentifier,
|
|
24
|
+
});
|
|
21
25
|
return res;
|
|
22
26
|
}
|
|
27
|
+
// Root object fields
|
|
28
|
+
const identifierName = file.meta.normalizedResolverName
|
|
29
|
+
.split('.')
|
|
30
|
+
.join('_');
|
|
31
|
+
const fieldMapping = {
|
|
32
|
+
propertyName: file.mainImportIdentifier,
|
|
33
|
+
identifierName,
|
|
34
|
+
};
|
|
35
|
+
res.importLines.push((0, utils_1.printImportLine)({
|
|
36
|
+
isTypeImport: false,
|
|
37
|
+
module: (0, utils_1.relativeModulePath)(outputDir, filepath),
|
|
38
|
+
namedImports: [fieldMapping],
|
|
39
|
+
}));
|
|
23
40
|
const rootObjectMap = {
|
|
24
|
-
Query: () => res.queryFields.push(
|
|
25
|
-
Mutation: () => res.mutationFields.push(
|
|
26
|
-
Subscription: () => res.subscriptionFields.push(
|
|
41
|
+
Query: () => res.queryFields.push(fieldMapping),
|
|
42
|
+
Mutation: () => res.mutationFields.push(fieldMapping),
|
|
43
|
+
Subscription: () => res.subscriptionFields.push(fieldMapping),
|
|
27
44
|
};
|
|
28
45
|
rootObjectMap[file.meta.belongsToRootObject]();
|
|
29
46
|
return res;
|
|
@@ -34,36 +51,76 @@ const addResolversMainFile = ({ baseOutputDir, resolverTypesPath, mainFile }, re
|
|
|
34
51
|
subscriptionFields: [],
|
|
35
52
|
objectTypes: [],
|
|
36
53
|
});
|
|
54
|
+
Object.entries(result.externalImports).reduce((res, [module, meta]) => {
|
|
55
|
+
res.importLines.push((0, utils_1.printImportLine)({
|
|
56
|
+
isTypeImport: false,
|
|
57
|
+
module,
|
|
58
|
+
namedImports: meta.importLineMeta.namedImports,
|
|
59
|
+
defaultImport: meta.importLineMeta.defaultImport,
|
|
60
|
+
}));
|
|
61
|
+
meta.identifierUsages.forEach((usage) => {
|
|
62
|
+
const resolverNameParts = usage.normalizedResolverName.split('.');
|
|
63
|
+
// Only 1 part, this is a GraphQL ObjectType
|
|
64
|
+
if (resolverNameParts.length === 1) {
|
|
65
|
+
res.objectTypes.push({
|
|
66
|
+
propertyName: resolverNameParts[0],
|
|
67
|
+
identifierName: usage.identifierName,
|
|
68
|
+
});
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
// 2+ parts, treat as 2 parts. This is a GraphQL ObjectType with field e.g. Query.me, Mutation.updateUser
|
|
72
|
+
const [rootObjectType, field] = resolverNameParts;
|
|
73
|
+
if (!(0, utils_1.isRootObjectType)(rootObjectType)) {
|
|
74
|
+
throw new Error(`Unexpected root object type found: ${rootObjectType}`);
|
|
75
|
+
}
|
|
76
|
+
const fieldMapping = {
|
|
77
|
+
identifierName: usage.identifierName,
|
|
78
|
+
propertyName: field,
|
|
79
|
+
};
|
|
80
|
+
const rootObjectMap = {
|
|
81
|
+
Query: () => res.queryFields.push(fieldMapping),
|
|
82
|
+
Mutation: () => res.mutationFields.push(fieldMapping),
|
|
83
|
+
Subscription: () => res.subscriptionFields.push(fieldMapping),
|
|
84
|
+
};
|
|
85
|
+
rootObjectMap[rootObjectType]();
|
|
86
|
+
});
|
|
87
|
+
return res;
|
|
88
|
+
}, resolversDetails);
|
|
37
89
|
const resolversIdentifier = 'resolvers';
|
|
38
90
|
const resolversTypeName = 'Resolvers'; // Generated type from typescript-resolvers plugin
|
|
39
91
|
const queries = resolversDetails.queryFields.length > 0
|
|
40
92
|
? `Query: { ${resolversDetails.queryFields
|
|
41
|
-
.map(
|
|
42
|
-
.join('
|
|
93
|
+
.map(printObjectMapping)
|
|
94
|
+
.join(',')} },`
|
|
43
95
|
: '';
|
|
44
96
|
const mutations = resolversDetails.mutationFields.length > 0
|
|
45
97
|
? `Mutation: { ${resolversDetails.mutationFields
|
|
46
|
-
.map(
|
|
47
|
-
.join('
|
|
98
|
+
.map(printObjectMapping)
|
|
99
|
+
.join(',')} },`
|
|
48
100
|
: '';
|
|
49
101
|
const suscriptions = resolversDetails.subscriptionFields.length > 0
|
|
50
102
|
? `Subscription: { ${resolversDetails.subscriptionFields
|
|
51
|
-
.map(
|
|
52
|
-
.join('
|
|
103
|
+
.map(printObjectMapping)
|
|
104
|
+
.join(',')} },`
|
|
53
105
|
: '';
|
|
54
106
|
result.files[filename] = {
|
|
55
107
|
__filetype: 'file',
|
|
56
108
|
content: `/* This file was automatically generated. DO NOT UPDATE MANUALLY. */
|
|
57
|
-
|
|
58
|
-
|
|
109
|
+
${(0, utils_1.printImportLine)({
|
|
110
|
+
isTypeImport: true,
|
|
111
|
+
module: relativePathToResolverTypes,
|
|
112
|
+
namedImports: [resolversTypeName],
|
|
113
|
+
})}
|
|
114
|
+
${resolversDetails.importLines.map((line) => line).join('\n')}
|
|
59
115
|
export const ${resolversIdentifier}: ${resolversTypeName} = {
|
|
60
116
|
${queries}
|
|
61
117
|
${mutations}
|
|
62
118
|
${suscriptions}
|
|
63
|
-
${resolversDetails.objectTypes.map(
|
|
119
|
+
${resolversDetails.objectTypes.map(printObjectMapping).join(',\n')}
|
|
64
120
|
}`,
|
|
65
|
-
mainImportIdentifier:
|
|
121
|
+
mainImportIdentifier: resolversIdentifier,
|
|
66
122
|
};
|
|
67
123
|
};
|
|
68
124
|
exports.addResolversMainFile = addResolversMainFile;
|
|
125
|
+
const printObjectMapping = ({ propertyName, identifierName, }) => `${propertyName}: ${identifierName}`;
|
|
69
126
|
//# sourceMappingURL=addResolversMainFile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addResolversMainFile.js","sourceRoot":"","sources":["../../../../../packages/typescript-resolver-files/src/run/addResolversMainFile.ts"],"names":[],"mappings":";;;AAAA,6BAA6B;AAE7B,
|
|
1
|
+
{"version":3,"file":"addResolversMainFile.js","sourceRoot":"","sources":["../../../../../packages/typescript-resolver-files/src/run/addResolversMainFile.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare const fixExistingResolvers: (result:
|
|
1
|
+
import type { RunContext } from '../types';
|
|
2
|
+
export declare const fixExistingResolvers: ({ result }: RunContext) => void;
|
|
@@ -4,7 +4,7 @@ exports.fixExistingResolvers = void 0;
|
|
|
4
4
|
const fs_1 = require("fs");
|
|
5
5
|
const ts_morph_1 = require("ts-morph");
|
|
6
6
|
const path = require("path");
|
|
7
|
-
const fixExistingResolvers = (result) => {
|
|
7
|
+
const fixExistingResolvers = ({ result }) => {
|
|
8
8
|
const existingResolverFiles = Object.entries(result.files).reduce((res, [filePath, file]) => {
|
|
9
9
|
if ((0, fs_1.existsSync)(filePath) && file.__filetype === 'resolver') {
|
|
10
10
|
res[filePath] = file;
|
|
@@ -15,10 +15,10 @@ const fixExistingResolvers = (result) => {
|
|
|
15
15
|
project.addSourceFilesAtPaths(Object.keys(existingResolverFiles));
|
|
16
16
|
const sourceFiles = project.getSourceFiles();
|
|
17
17
|
sourceFiles.forEach((sourceFile) => {
|
|
18
|
-
const
|
|
19
|
-
const file = existingResolverFiles[
|
|
18
|
+
const normalizedRelativePath = path.relative(process.cwd(), sourceFile.getFilePath());
|
|
19
|
+
const file = existingResolverFiles[normalizedRelativePath];
|
|
20
20
|
if (!file) {
|
|
21
|
-
throw new Error(`Unable to find resolver file: ${
|
|
21
|
+
throw new Error(`Unable to find resolver file: ${normalizedRelativePath}`);
|
|
22
22
|
}
|
|
23
23
|
// TODO: Check missing import
|
|
24
24
|
// ...
|
|
@@ -58,7 +58,7 @@ const fixExistingResolvers = (result) => {
|
|
|
58
58
|
// else, if identifier's been exported do nothing
|
|
59
59
|
}
|
|
60
60
|
// Overwrite existing files with fixes
|
|
61
|
-
result.files[
|
|
61
|
+
result.files[normalizedRelativePath] = Object.assign(Object.assign({}, file), { content: sourceFile.getText() });
|
|
62
62
|
});
|
|
63
63
|
};
|
|
64
64
|
exports.fixExistingResolvers = fixExistingResolvers;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixExistingResolvers.js","sourceRoot":"","sources":["../../../../../packages/typescript-resolver-files/src/run/fixExistingResolvers.ts"],"names":[],"mappings":";;;AAAA,2BAAgC;AAChC,uCAAmC;AACnC,6BAA6B;AAGtB,MAAM,oBAAoB,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"fixExistingResolvers.js","sourceRoot":"","sources":["../../../../../packages/typescript-resolver-files/src/run/fixExistingResolvers.ts"],"names":[],"mappings":";;;AAAA,2BAAgC;AAChC,uCAAmC;AACnC,6BAA6B;AAGtB,MAAM,oBAAoB,GAAG,CAAC,EAAE,MAAM,EAAc,EAAQ,EAAE;IACnE,MAAM,qBAAqB,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAE/D,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE;QAC1B,IAAI,IAAA,eAAU,EAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,EAAE;YAC1D,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;SACtB;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,OAAO,GAAG,IAAI,kBAAO,EAAE,CAAC;IAC9B,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAClE,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAC7C,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;QACjC,MAAM,sBAAsB,GAAG,IAAI,CAAC,QAAQ,CAC1C,OAAO,CAAC,GAAG,EAAE,EACb,UAAU,CAAC,WAAW,EAAE,CACzB,CAAC;QACF,MAAM,IAAI,GAAG,qBAAqB,CAAC,sBAAsB,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI,EAAE;YACT,MAAM,IAAI,KAAK,CACb,iCAAiC,sBAAsB,EAAE,CAC1D,CAAC;SACH;QAED,6BAA6B;QAC7B,MAAM;QAEN,4BAA4B;QAC5B,IAAI,+CAA+C,GAAG,KAAK,CAAC;QAC5D,MAAM,uCAAuC,GAC3C,UAAU,CAAC,oBAAoB,CAAC,CAAC,SAAS,EAAE,EAAE;YAC5C,IAAI,qBAAqB,GAAG,KAAK,CAAC;YAClC,SAAS;iBACN,kBAAkB,EAAE;iBACpB,eAAe,EAAE;iBACjB,OAAO,CAAC,CAAC,eAAe,EAAE,EAAE;gBAC3B,IAAI,eAAe,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,oBAAoB,EAAE;oBAC3D,qBAAqB,GAAG,IAAI,CAAC;oBAC7B,IAAI,SAAS,CAAC,UAAU,EAAE,EAAE;wBAC1B,+CAA+C,GAAG,IAAI,CAAC;qBACxD;iBACF;YACH,CAAC,CAAC,CAAC;YAEL,IAAI,CAAC,qBAAqB,EAAE;gBAC1B,OAAO,KAAK,CAAC;aACd;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC,uCAAuC,EAAE;YAC5C,6FAA6F;YAC7F,UAAU,CAAC,aAAa,CACtB,0IAA0I,CAC3I,CAAC;YACF,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;SAC/D;aAAM,IACL,uCAAuC;YACvC,CAAC,+CAA+C,EAChD;YACA,qCAAqC;YACrC,kCAAkC;YAClC,MAAM,4BAA4B,GAAG,OAAO,CAC1C,UAAU,CAAC,uBAAuB,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CACpE,CAAC;YACF,IAAI,CAAC,4BAA4B,EAAE;gBACjC,uCAAuC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;aAC7D;YACD,iDAAiD;SAClD;QAED,sCAAsC;QACtC,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,mCAC/B,IAAI,KACP,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,GAC9B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AA9EW,QAAA,oBAAoB,wBA8E/B"}
|
|
@@ -1,27 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.handleGraphQLObjectType = void 0;
|
|
4
|
-
const path = require("path");
|
|
5
4
|
const utils_1 = require("../utils");
|
|
6
|
-
const handleGraphQLObjectType = ({
|
|
7
|
-
const
|
|
8
|
-
if (result.files[fieldFilePath]) {
|
|
9
|
-
throw new Error(`Unexpected duplication in field filename. Type: ${type.name}, file: ${fieldFilePath}`);
|
|
10
|
-
}
|
|
11
|
-
result.dirs[outputDir] = true;
|
|
12
|
-
const resolverTypeName = `${type.name}Resolvers`; // Generated type from typescript-resolvers plugin
|
|
13
|
-
const relativePathToResolverTypes = (0, utils_1.relativeModulePath)(outputDir, resolverTypesPath);
|
|
14
|
-
const pathToResolverModule = (0, utils_1.printImportModule)(relativePathToResolverTypes);
|
|
15
|
-
const resolverVariableStatement = `export const ${type.name}: ${resolverTypeName} = {
|
|
16
|
-
/* Implement ${type.name} resolver logic here */
|
|
17
|
-
};`;
|
|
5
|
+
const handleGraphQLObjectType = ({ fieldFilePath, resolverName, normalizedResolverName, resolversTypeMeta }, { result }) => {
|
|
6
|
+
const resolverVariableStatement = `export const ${resolverName}: ${resolversTypeMeta.typeString} = { /* Implement ${resolverName} resolver logic here */ };`;
|
|
18
7
|
result.files[fieldFilePath] = {
|
|
19
8
|
__filetype: 'resolver',
|
|
20
|
-
content: `
|
|
9
|
+
content: `
|
|
10
|
+
${(0, utils_1.printImportLine)({
|
|
11
|
+
isTypeImport: true,
|
|
12
|
+
module: resolversTypeMeta.module,
|
|
13
|
+
namedImports: [resolversTypeMeta.typeNamedImport],
|
|
14
|
+
})}
|
|
21
15
|
${resolverVariableStatement}`,
|
|
22
|
-
mainImportIdentifier:
|
|
16
|
+
mainImportIdentifier: resolverName,
|
|
23
17
|
meta: {
|
|
24
18
|
belongsToRootObject: null,
|
|
19
|
+
normalizedResolverName,
|
|
25
20
|
resolverVariableStatement,
|
|
26
21
|
},
|
|
27
22
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleGraphQLObjectType.js","sourceRoot":"","sources":["../../../../../packages/typescript-resolver-files/src/run/handleGraphQLObjectType.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"handleGraphQLObjectType.js","sourceRoot":"","sources":["../../../../../packages/typescript-resolver-files/src/run/handleGraphQLObjectType.ts"],"names":[],"mappings":";;;AACA,oCAA2C;AAEpC,MAAM,uBAAuB,GAAuB,CACzD,EAAE,aAAa,EAAE,YAAY,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,EAC1E,EAAE,MAAM,EAAE,EACV,EAAE;IACF,MAAM,yBAAyB,GAAG,gBAAgB,YAAY,KAAK,iBAAiB,CAAC,UAAU,qBAAqB,YAAY,4BAA4B,CAAC;IAE7J,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG;QAC5B,UAAU,EAAE,UAAU;QACtB,OAAO,EAAE;MACP,IAAA,uBAAe,EAAC;YAChB,YAAY,EAAE,IAAI;YAClB,MAAM,EAAE,iBAAiB,CAAC,MAAM;YAChC,YAAY,EAAE,CAAC,iBAAiB,CAAC,eAAe,CAAC;SAClD,CAAC;MACA,yBAAyB,EAAE;QAC7B,oBAAoB,EAAE,YAAY;QAClC,IAAI,EAAE;YACJ,mBAAmB,EAAE,IAAI;YACzB,sBAAsB;YACtB,yBAAyB;SAC1B;KACF,CAAC;AACJ,CAAC,CAAC;AAtBW,QAAA,uBAAuB,2BAsBlC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handleGraphQLRootObjectTypeField = void 0;
|
|
4
|
+
const utils_1 = require("../utils");
|
|
5
|
+
const handleGraphQLRootObjectTypeField = ({ fieldFilePath, resolverName, belongsToRootObject, normalizedResolverName, resolversTypeMeta, }, { result }) => {
|
|
6
|
+
const resolverVariableStatement = `export const ${resolverName}: ${resolversTypeMeta.typeString} = async (_parent, _arg, _ctx) => { /* Implement ${normalizedResolverName} resolver logic here */ };`;
|
|
7
|
+
result.files[fieldFilePath] = {
|
|
8
|
+
__filetype: 'resolver',
|
|
9
|
+
content: `
|
|
10
|
+
${(0, utils_1.printImportLine)({
|
|
11
|
+
isTypeImport: true,
|
|
12
|
+
module: resolversTypeMeta.module,
|
|
13
|
+
namedImports: [resolversTypeMeta.typeNamedImport],
|
|
14
|
+
})}
|
|
15
|
+
${resolverVariableStatement}`,
|
|
16
|
+
mainImportIdentifier: resolverName,
|
|
17
|
+
meta: {
|
|
18
|
+
belongsToRootObject,
|
|
19
|
+
resolverVariableStatement,
|
|
20
|
+
normalizedResolverName,
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
exports.handleGraphQLRootObjectTypeField = handleGraphQLRootObjectTypeField;
|
|
25
|
+
//# sourceMappingURL=handleGraphQLRootObjectTypeField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handleGraphQLRootObjectTypeField.js","sourceRoot":"","sources":["../../../../../packages/typescript-resolver-files/src/run/handleGraphQLRootObjectTypeField.ts"],"names":[],"mappings":";;;AACA,oCAA2C;AAEpC,MAAM,gCAAgC,GAAuB,CAClE,EACE,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,GAClB,EACD,EAAE,MAAM,EAAE,EACV,EAAE;IACF,MAAM,yBAAyB,GAAG,gBAAgB,YAAY,KAAK,iBAAiB,CAAC,UAAU,oDAAoD,sBAAsB,4BAA4B,CAAC;IAEtM,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG;QAC5B,UAAU,EAAE,UAAU;QACtB,OAAO,EAAE;UACH,IAAA,uBAAe,EAAC;YAChB,YAAY,EAAE,IAAI;YAClB,MAAM,EAAE,iBAAiB,CAAC,MAAM;YAChC,YAAY,EAAE,CAAC,iBAAiB,CAAC,eAAe,CAAC;SAClD,CAAC;UACA,yBAAyB,EAAE;QACjC,oBAAoB,EAAE,YAAY;QAClC,IAAI,EAAE;YACJ,mBAAmB;YACnB,yBAAyB;YACzB,sBAAsB;SACvB;KACF,CAAC;AACJ,CAAC,CAAC;AA5BW,QAAA,gCAAgC,oCA4B3C"}
|