@gqlkit-ts/cli 0.1.0 → 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/dist/auto-type-generator/auto-type-generator.d.ts +19 -3
- package/dist/auto-type-generator/auto-type-generator.d.ts.map +1 -1
- package/dist/auto-type-generator/auto-type-generator.js +236 -49
- package/dist/auto-type-generator/auto-type-generator.js.map +1 -1
- package/dist/auto-type-generator/index.d.ts +1 -1
- package/dist/auto-type-generator/index.d.ts.map +1 -1
- package/dist/auto-type-generator/index.js.map +1 -1
- package/dist/auto-type-generator/inline-enum-collector.d.ts +31 -0
- package/dist/auto-type-generator/inline-enum-collector.d.ts.map +1 -0
- package/dist/auto-type-generator/inline-enum-collector.js +157 -0
- package/dist/auto-type-generator/inline-enum-collector.js.map +1 -0
- package/dist/auto-type-generator/naming-convention.d.ts +4 -0
- package/dist/auto-type-generator/naming-convention.d.ts.map +1 -1
- package/dist/auto-type-generator/naming-convention.js +8 -0
- package/dist/auto-type-generator/naming-convention.js.map +1 -1
- package/dist/gen-orchestrator/orchestrator.d.ts.map +1 -1
- package/dist/gen-orchestrator/orchestrator.js +106 -8
- package/dist/gen-orchestrator/orchestrator.js.map +1 -1
- package/dist/resolver-extractor/extract-resolvers.d.ts +10 -1
- package/dist/resolver-extractor/extract-resolvers.d.ts.map +1 -1
- package/dist/resolver-extractor/extractor/define-api-extractor.d.ts +11 -1
- package/dist/resolver-extractor/extractor/define-api-extractor.d.ts.map +1 -1
- package/dist/resolver-extractor/extractor/define-api-extractor.js +88 -264
- package/dist/resolver-extractor/extractor/define-api-extractor.js.map +1 -1
- package/dist/schema-generator/emitter/code-emitter.d.ts +10 -2
- package/dist/schema-generator/emitter/code-emitter.d.ts.map +1 -1
- package/dist/schema-generator/emitter/code-emitter.js +19 -4
- package/dist/schema-generator/emitter/code-emitter.js.map +1 -1
- package/dist/schema-generator/generate-schema.d.ts.map +1 -1
- package/dist/schema-generator/generate-schema.js +18 -1
- package/dist/schema-generator/generate-schema.js.map +1 -1
- package/dist/schema-generator/integrator/result-integrator.d.ts +20 -0
- package/dist/schema-generator/integrator/result-integrator.d.ts.map +1 -1
- package/dist/schema-generator/integrator/result-integrator.js +42 -0
- package/dist/schema-generator/integrator/result-integrator.js.map +1 -1
- package/dist/shared/constants.d.ts +0 -16
- package/dist/shared/constants.d.ts.map +1 -1
- package/dist/shared/constants.js +0 -19
- package/dist/shared/constants.js.map +1 -1
- package/dist/shared/directive-detector.d.ts.map +1 -1
- package/dist/shared/directive-detector.js +8 -15
- package/dist/shared/directive-detector.js.map +1 -1
- package/dist/shared/file-scanner.d.ts.map +1 -1
- package/dist/shared/file-scanner.js +5 -3
- package/dist/shared/file-scanner.js.map +1 -1
- package/dist/shared/index.d.ts +1 -1
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +1 -3
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/interface-detector.d.ts +3 -2
- package/dist/shared/interface-detector.d.ts.map +1 -1
- package/dist/shared/interface-detector.js +54 -11
- package/dist/shared/interface-detector.js.map +1 -1
- package/dist/shared/path-utils.d.ts +2 -0
- package/dist/shared/path-utils.d.ts.map +1 -0
- package/dist/shared/path-utils.js +4 -0
- package/dist/shared/path-utils.js.map +1 -0
- package/dist/shared/type-converter.d.ts.map +1 -1
- package/dist/shared/type-converter.js +11 -0
- package/dist/shared/type-converter.js.map +1 -1
- package/dist/shared/typescript-utils.d.ts +34 -7
- package/dist/shared/typescript-utils.d.ts.map +1 -1
- package/dist/shared/typescript-utils.js +72 -24
- package/dist/shared/typescript-utils.js.map +1 -1
- package/dist/type-extractor/collector/scalar-collector.d.ts.map +1 -1
- package/dist/type-extractor/collector/scalar-collector.js +4 -14
- package/dist/type-extractor/collector/scalar-collector.js.map +1 -1
- package/dist/type-extractor/converter/graphql-converter.d.ts.map +1 -1
- package/dist/type-extractor/converter/graphql-converter.js +42 -3
- package/dist/type-extractor/converter/graphql-converter.js.map +1 -1
- package/dist/type-extractor/extractor/field-type-resolver.d.ts +28 -0
- package/dist/type-extractor/extractor/field-type-resolver.d.ts.map +1 -0
- package/dist/type-extractor/extractor/field-type-resolver.js +394 -0
- package/dist/type-extractor/extractor/field-type-resolver.js.map +1 -0
- package/dist/type-extractor/extractor/type-extractor.d.ts +12 -3
- package/dist/type-extractor/extractor/type-extractor.d.ts.map +1 -1
- package/dist/type-extractor/extractor/type-extractor.js +176 -210
- package/dist/type-extractor/extractor/type-extractor.js.map +1 -1
- package/dist/type-extractor/extractor/type-name-collector.d.ts +24 -0
- package/dist/type-extractor/extractor/type-name-collector.d.ts.map +1 -0
- package/dist/type-extractor/extractor/type-name-collector.js +102 -0
- package/dist/type-extractor/extractor/type-name-collector.js.map +1 -0
- package/dist/type-extractor/mapper/scalar-base-type-mapper.d.ts +89 -0
- package/dist/type-extractor/mapper/scalar-base-type-mapper.d.ts.map +1 -0
- package/dist/type-extractor/mapper/scalar-base-type-mapper.js +158 -0
- package/dist/type-extractor/mapper/scalar-base-type-mapper.js.map +1 -0
- package/dist/type-extractor/types/diagnostics.d.ts +1 -1
- package/dist/type-extractor/types/diagnostics.d.ts.map +1 -1
- package/dist/type-extractor/types/graphql.d.ts +2 -0
- package/dist/type-extractor/types/graphql.d.ts.map +1 -1
- package/dist/type-extractor/types/index.d.ts +2 -1
- package/dist/type-extractor/types/index.d.ts.map +1 -1
- package/dist/type-extractor/types/index.js +1 -1
- package/dist/type-extractor/types/index.js.map +1 -1
- package/dist/type-extractor/types/ts-type-reference-factory.d.ts +39 -0
- package/dist/type-extractor/types/ts-type-reference-factory.d.ts.map +1 -0
- package/dist/type-extractor/types/ts-type-reference-factory.js +69 -0
- package/dist/type-extractor/types/ts-type-reference-factory.js.map +1 -0
- package/dist/type-extractor/types/typescript.d.ts +21 -1
- package/dist/type-extractor/types/typescript.d.ts.map +1 -1
- package/dist/type-extractor/validator/type-validator.js +1 -1
- package/dist/type-extractor/validator/type-validator.js.map +1 -1
- package/docs/index.md +1 -0
- package/docs/integration/drizzle.md +191 -0
- package/docs/schema/enums.md +208 -0
- package/docs/schema/fields.md +2 -0
- package/docs/schema/inputs.md +2 -0
- package/docs/schema/objects.md +2 -0
- package/docs/schema/queries-mutations.md +2 -0
- package/package.json +10 -3
- package/src/auto-type-generator/auto-type-generator.ts +925 -0
- package/src/auto-type-generator/index.ts +21 -0
- package/src/auto-type-generator/inline-enum-collector.ts +290 -0
- package/src/auto-type-generator/name-collision-validator.ts +119 -0
- package/src/auto-type-generator/naming-convention.ts +126 -0
- package/src/cli.ts +11 -0
- package/src/commands/gen.ts +141 -0
- package/src/commands/main.ts +5 -0
- package/src/config/define-config.ts +28 -0
- package/src/config/index.ts +7 -0
- package/src/config/types.ts +144 -0
- package/src/config-loader/index.ts +14 -0
- package/src/config-loader/loader.ts +143 -0
- package/src/config-loader/validator.ts +672 -0
- package/src/gen-orchestrator/hook-executor/hook-executor.ts +117 -0
- package/src/gen-orchestrator/orchestrator.ts +784 -0
- package/src/gen-orchestrator/reporter/diagnostic-reporter.ts +44 -0
- package/src/gen-orchestrator/reporter/progress-reporter.ts +61 -0
- package/src/gen-orchestrator/writer/file-writer.ts +38 -0
- package/src/index.ts +2 -0
- package/src/resolver-extractor/extract-resolvers.ts +63 -0
- package/src/resolver-extractor/extractor/define-api-extractor.ts +806 -0
- package/src/resolver-extractor/index.ts +19 -0
- package/src/resolver-extractor/validator/abstract-resolver-validator.ts +251 -0
- package/src/resolver-extractor/validator/only-validator.ts +158 -0
- package/src/schema-generator/builder/ast-builder.ts +706 -0
- package/src/schema-generator/emitter/code-emitter.ts +351 -0
- package/src/schema-generator/emitter/sdl-emitter.ts +13 -0
- package/src/schema-generator/generate-schema.ts +170 -0
- package/src/schema-generator/index.ts +19 -0
- package/src/schema-generator/integrator/result-integrator.ts +690 -0
- package/src/schema-generator/pruner/schema-pruner.ts +112 -0
- package/src/schema-generator/resolver-collector/resolver-collector.ts +123 -0
- package/src/shared/constants.ts +122 -0
- package/src/shared/default-value-detector.ts +172 -0
- package/src/shared/diagnostics.ts +35 -0
- package/src/shared/directive-definition-extractor.ts +564 -0
- package/src/shared/directive-detector.ts +556 -0
- package/src/shared/file-scanner.ts +170 -0
- package/src/shared/index.ts +32 -0
- package/src/shared/inline-object-extractor.ts +102 -0
- package/src/shared/inline-object-utils.ts +23 -0
- package/src/shared/interface-detector.ts +176 -0
- package/src/shared/interface-validator.ts +211 -0
- package/src/shared/metadata-detector.ts +443 -0
- package/src/shared/path-utils.ts +3 -0
- package/src/shared/program-factory.ts +51 -0
- package/src/shared/source-location.ts +27 -0
- package/src/shared/tsconfig-loader.ts +126 -0
- package/src/shared/tsdoc-parser.ts +155 -0
- package/src/shared/type-converter.ts +99 -0
- package/src/shared/typescript-utils.ts +246 -0
- package/src/type-extractor/collector/result-collector.ts +57 -0
- package/src/type-extractor/collector/scalar-collector.ts +254 -0
- package/src/type-extractor/converter/field-eligibility.ts +112 -0
- package/src/type-extractor/converter/graphql-converter.ts +459 -0
- package/src/type-extractor/extract-types.ts +1 -0
- package/src/type-extractor/extractor/field-type-resolver.ts +569 -0
- package/src/type-extractor/extractor/type-extractor.ts +1567 -0
- package/src/type-extractor/extractor/type-name-collector.ts +130 -0
- package/src/type-extractor/index.ts +20 -0
- package/src/type-extractor/mapper/scalar-base-type-mapper.ts +265 -0
- package/src/type-extractor/types/diagnostics.ts +99 -0
- package/src/type-extractor/types/graphql.ts +55 -0
- package/src/type-extractor/types/index.ts +37 -0
- package/src/type-extractor/types/ts-type-reference-factory.ts +137 -0
- package/src/type-extractor/types/typescript.ts +133 -0
- package/src/type-extractor/validator/type-validator.ts +77 -0
- package/dist/auto-type-generator/auto-type-generator.test.d.ts +0 -2
- package/dist/auto-type-generator/auto-type-generator.test.d.ts.map +0 -1
- package/dist/auto-type-generator/auto-type-generator.test.js +0 -613
- package/dist/auto-type-generator/auto-type-generator.test.js.map +0 -1
- package/dist/auto-type-generator/name-collision-validator.test.d.ts +0 -2
- package/dist/auto-type-generator/name-collision-validator.test.d.ts.map +0 -1
- package/dist/auto-type-generator/name-collision-validator.test.js +0 -358
- package/dist/auto-type-generator/name-collision-validator.test.js.map +0 -1
- package/dist/auto-type-generator/naming-convention.test.d.ts +0 -2
- package/dist/auto-type-generator/naming-convention.test.d.ts.map +0 -1
- package/dist/auto-type-generator/naming-convention.test.js +0 -132
- package/dist/auto-type-generator/naming-convention.test.js.map +0 -1
- package/dist/commands/gen.test.d.ts +0 -2
- package/dist/commands/gen.test.d.ts.map +0 -1
- package/dist/commands/gen.test.js +0 -226
- package/dist/commands/gen.test.js.map +0 -1
- package/dist/config-loader/loader.test.d.ts +0 -2
- package/dist/config-loader/loader.test.d.ts.map +0 -1
- package/dist/config-loader/loader.test.js +0 -123
- package/dist/config-loader/loader.test.js.map +0 -1
- package/dist/config-loader/validator.test.d.ts +0 -2
- package/dist/config-loader/validator.test.d.ts.map +0 -1
- package/dist/config-loader/validator.test.js +0 -846
- package/dist/config-loader/validator.test.js.map +0 -1
- package/dist/gen-orchestrator/golden.test.d.ts +0 -2
- package/dist/gen-orchestrator/golden.test.d.ts.map +0 -1
- package/dist/gen-orchestrator/golden.test.js +0 -102
- package/dist/gen-orchestrator/golden.test.js.map +0 -1
- package/dist/gen-orchestrator/hook-executor/hook-executor.test.d.ts +0 -2
- package/dist/gen-orchestrator/hook-executor/hook-executor.test.d.ts.map +0 -1
- package/dist/gen-orchestrator/hook-executor/hook-executor.test.js +0 -167
- package/dist/gen-orchestrator/hook-executor/hook-executor.test.js.map +0 -1
- package/dist/gen-orchestrator/reporter/progress-reporter.test.d.ts +0 -2
- package/dist/gen-orchestrator/reporter/progress-reporter.test.d.ts.map +0 -1
- package/dist/gen-orchestrator/reporter/progress-reporter.test.js +0 -74
- package/dist/gen-orchestrator/reporter/progress-reporter.test.js.map +0 -1
- package/dist/resolver-extractor/validator/only-validator.test.d.ts +0 -8
- package/dist/resolver-extractor/validator/only-validator.test.d.ts.map +0 -1
- package/dist/resolver-extractor/validator/only-validator.test.js +0 -352
- package/dist/resolver-extractor/validator/only-validator.test.js.map +0 -1
- package/dist/schema-generator/builder/ast-builder.test.d.ts +0 -2
- package/dist/schema-generator/builder/ast-builder.test.d.ts.map +0 -1
- package/dist/schema-generator/builder/ast-builder.test.js +0 -469
- package/dist/schema-generator/builder/ast-builder.test.js.map +0 -1
- package/dist/shared/file-scanner.test.d.ts +0 -2
- package/dist/shared/file-scanner.test.d.ts.map +0 -1
- package/dist/shared/file-scanner.test.js +0 -138
- package/dist/shared/file-scanner.test.js.map +0 -1
- package/dist/shared/interface-validator.test.d.ts +0 -2
- package/dist/shared/interface-validator.test.d.ts.map +0 -1
- package/dist/shared/interface-validator.test.js +0 -145
- package/dist/shared/interface-validator.test.js.map +0 -1
- package/dist/type-extractor/types/typescript.test.d.ts +0 -2
- package/dist/type-extractor/types/typescript.test.d.ts.map +0 -1
- package/dist/type-extractor/types/typescript.test.js +0 -287
- package/dist/type-extractor/types/typescript.test.js.map +0 -1
|
@@ -8,15 +8,16 @@
|
|
|
8
8
|
import ts from "typescript";
|
|
9
9
|
/**
|
|
10
10
|
* Checks if a type alias declaration uses GqlInterface.
|
|
11
|
-
*
|
|
11
|
+
* Detects by checking for the $gqlkitInterfaceMeta property in the resolved type.
|
|
12
12
|
*/
|
|
13
|
-
export declare function isDefineInterfaceTypeAlias(node: ts.TypeAliasDeclaration,
|
|
13
|
+
export declare function isDefineInterfaceTypeAlias(node: ts.TypeAliasDeclaration, checker: ts.TypeChecker): boolean;
|
|
14
14
|
/**
|
|
15
15
|
* Extracts implements from GqlInterface type alias.
|
|
16
16
|
*/
|
|
17
17
|
export declare function extractImplementsFromDefineInterface(node: ts.TypeAliasDeclaration, sourceFile: ts.SourceFile, checker: ts.TypeChecker): ReadonlyArray<string>;
|
|
18
18
|
/**
|
|
19
19
|
* Extracts implements from GqlObject type alias.
|
|
20
|
+
* Detects GqlObject by checking for the $gqlkitTypeMeta property in the resolved type.
|
|
20
21
|
*/
|
|
21
22
|
export declare function extractImplementsFromGqlTypeDef(node: ts.TypeAliasDeclaration, sourceFile: ts.SourceFile, checker: ts.TypeChecker): ReadonlyArray<string>;
|
|
22
23
|
//# sourceMappingURL=interface-detector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interface-detector.d.ts","sourceRoot":"","sources":["../../src/shared/interface-detector.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"interface-detector.d.ts","sourceRoot":"","sources":["../../src/shared/interface-detector.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,YAAY,CAAC;AAM5B;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,EAAE,CAAC,oBAAoB,EAC7B,OAAO,EAAE,EAAE,CAAC,WAAW,GACtB,OAAO,CAQT;AA4CD;;GAEG;AACH,wBAAgB,oCAAoC,CAClD,IAAI,EAAE,EAAE,CAAC,oBAAoB,EAC7B,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,OAAO,EAAE,EAAE,CAAC,WAAW,GACtB,aAAa,CAAC,MAAM,CAAC,CAiBvB;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,EAAE,CAAC,oBAAoB,EAC7B,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,OAAO,EAAE,EAAE,CAAC,WAAW,GACtB,aAAa,CAAC,MAAM,CAAC,CA2BvB"}
|
|
@@ -6,16 +6,54 @@
|
|
|
6
6
|
* and to extract implements declarations from types using $gqlkitTypeMeta.
|
|
7
7
|
*/
|
|
8
8
|
import ts from "typescript";
|
|
9
|
-
import {
|
|
9
|
+
import { METADATA_PROPERTIES } from "./constants.js";
|
|
10
|
+
const INTERFACE_META_PROPERTY = METADATA_PROPERTIES.INTERFACE_META;
|
|
11
|
+
const TYPE_META_PROPERTY = METADATA_PROPERTIES.TYPE_META;
|
|
10
12
|
/**
|
|
11
13
|
* Checks if a type alias declaration uses GqlInterface.
|
|
12
|
-
*
|
|
14
|
+
* Detects by checking for the $gqlkitInterfaceMeta property in the resolved type.
|
|
13
15
|
*/
|
|
14
|
-
export function isDefineInterfaceTypeAlias(node,
|
|
15
|
-
const
|
|
16
|
-
if (
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
export function isDefineInterfaceTypeAlias(node, checker) {
|
|
17
|
+
const symbol = checker.getSymbolAtLocation(node.name);
|
|
18
|
+
if (!symbol) {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
const type = checker.getDeclaredTypeOfSymbol(symbol);
|
|
22
|
+
return hasInterfaceMetadata(type);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Checks if a type has the $gqlkitInterfaceMeta property.
|
|
26
|
+
*/
|
|
27
|
+
function hasInterfaceMetadata(type) {
|
|
28
|
+
const metaProp = type.getProperty(INTERFACE_META_PROPERTY);
|
|
29
|
+
if (metaProp) {
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
if (type.isIntersection()) {
|
|
33
|
+
for (const member of type.types) {
|
|
34
|
+
const prop = member.getProperty(INTERFACE_META_PROPERTY);
|
|
35
|
+
if (prop) {
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Checks if a type has the $gqlkitTypeMeta property (GqlObject).
|
|
44
|
+
*/
|
|
45
|
+
function hasTypeMetadata(type) {
|
|
46
|
+
const metaProp = type.getProperty(TYPE_META_PROPERTY);
|
|
47
|
+
if (metaProp) {
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
if (type.isIntersection()) {
|
|
51
|
+
for (const member of type.types) {
|
|
52
|
+
const prop = member.getProperty(TYPE_META_PROPERTY);
|
|
53
|
+
if (prop) {
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
19
57
|
}
|
|
20
58
|
return false;
|
|
21
59
|
}
|
|
@@ -39,14 +77,19 @@ export function extractImplementsFromDefineInterface(node, sourceFile, checker)
|
|
|
39
77
|
}
|
|
40
78
|
/**
|
|
41
79
|
* Extracts implements from GqlObject type alias.
|
|
80
|
+
* Detects GqlObject by checking for the $gqlkitTypeMeta property in the resolved type.
|
|
42
81
|
*/
|
|
43
82
|
export function extractImplementsFromGqlTypeDef(node, sourceFile, checker) {
|
|
44
|
-
const
|
|
45
|
-
if (!
|
|
83
|
+
const symbol = checker.getSymbolAtLocation(node.name);
|
|
84
|
+
if (!symbol) {
|
|
85
|
+
return [];
|
|
86
|
+
}
|
|
87
|
+
const type = checker.getDeclaredTypeOfSymbol(symbol);
|
|
88
|
+
if (!hasTypeMetadata(type)) {
|
|
46
89
|
return [];
|
|
47
90
|
}
|
|
48
|
-
const
|
|
49
|
-
if (
|
|
91
|
+
const typeNode = node.type;
|
|
92
|
+
if (!ts.isTypeReferenceNode(typeNode)) {
|
|
50
93
|
return [];
|
|
51
94
|
}
|
|
52
95
|
const typeArgs = typeNode.typeArguments;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interface-detector.js","sourceRoot":"","sources":["../../src/shared/interface-detector.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"interface-detector.js","sourceRoot":"","sources":["../../src/shared/interface-detector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path-utils.d.ts","sourceRoot":"","sources":["../../src/shared/path-utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEpD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path-utils.js","sourceRoot":"","sources":["../../src/shared/path-utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC1C,OAAO,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-converter.d.ts","sourceRoot":"","sources":["../../src/shared/type-converter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EAChB,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"type-converter.d.ts","sourceRoot":"","sources":["../../src/shared/type-converter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EAChB,MAAM,kCAAkC,CAAC;AAsB1C,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,eAAe,EACvB,QAAQ,UAAQ,GACf,gBAAgB,CAsElB"}
|
|
@@ -12,6 +12,9 @@ function convertElementTypeName(elementType) {
|
|
|
12
12
|
if (elementType.kind === "inlineObject") {
|
|
13
13
|
return "__INLINE_OBJECT__";
|
|
14
14
|
}
|
|
15
|
+
if (elementType.kind === "inlineEnum") {
|
|
16
|
+
return "__INLINE_ENUM__";
|
|
17
|
+
}
|
|
15
18
|
return elementType.name ?? "String";
|
|
16
19
|
}
|
|
17
20
|
export function convertTsTypeToGraphQLType(tsType, optional = false) {
|
|
@@ -62,6 +65,14 @@ export function convertTsTypeToGraphQLType(tsType, optional = false) {
|
|
|
62
65
|
listItemNullable: null,
|
|
63
66
|
};
|
|
64
67
|
}
|
|
68
|
+
if (tsType.kind === "inlineEnum") {
|
|
69
|
+
return {
|
|
70
|
+
typeName: "__INLINE_ENUM__",
|
|
71
|
+
nullable,
|
|
72
|
+
list: false,
|
|
73
|
+
listItemNullable: null,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
65
76
|
return {
|
|
66
77
|
typeName: tsType.name ?? "String",
|
|
67
78
|
nullable,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-converter.js","sourceRoot":"","sources":["../../src/shared/type-converter.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,SAAS,sBAAsB,CAAC,WAA4B;IAC1D,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,WAAW,CAAC,UAAU,EAAE,UAAU,IAAI,WAAW,CAAC,IAAI,IAAI,QAAQ,CAAC;IAC5E,CAAC;IACD,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACrC,OAAO,kBAAkB,CAAC,WAAW,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,QAAQ,CAAC;IAChE,CAAC;IACD,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACrC,OAAO,WAAW,CAAC,IAAI,IAAI,SAAS,CAAC;IACvC,CAAC;IACD,IAAI,WAAW,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QACxC,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IACD,OAAO,WAAW,CAAC,IAAI,IAAI,QAAQ,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,MAAuB,EACvB,QAAQ,GAAG,KAAK;IAEhB,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,QAAQ,CAAC;IAE7C,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACvC,MAAM,eAAe,GAAG,WAAW;YACjC,CAAC,CAAC,sBAAsB,CAAC,WAAW,CAAC;YACrC,CAAC,CAAC,QAAQ,CAAC;QACb,MAAM,gBAAgB,GAAG,WAAW,EAAE,QAAQ,IAAI,KAAK,CAAC;QAExD,OAAO;YACL,QAAQ,EAAE,eAAe;YACzB,QAAQ;YACR,IAAI,EAAE,IAAI;YACV,gBAAgB;SACjB,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO;YACL,QAAQ,EAAE,MAAM,CAAC,UAAU,EAAE,UAAU,IAAI,MAAM,CAAC,IAAI,IAAI,QAAQ;YAClE,QAAQ;YACR,IAAI,EAAE,KAAK;YACX,gBAAgB,EAAE,IAAI;SACvB,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAChC,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,QAAQ,CAAC;QACtE,OAAO;YACL,QAAQ,EAAE,WAAW;YACrB,QAAQ;YACR,IAAI,EAAE,KAAK;YACX,gBAAgB,EAAE,IAAI;SACvB,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAChC,OAAO;YACL,QAAQ,EAAE,MAAM,CAAC,IAAI,IAAI,SAAS;YAClC,QAAQ;YACR,IAAI,EAAE,KAAK;YACX,gBAAgB,EAAE,IAAI;SACvB,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QACnC,OAAO;YACL,QAAQ,EAAE,mBAAmB;YAC7B,QAAQ;YACR,IAAI,EAAE,KAAK;YACX,gBAAgB,EAAE,IAAI;SACvB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,IAAI,IAAI,QAAQ;QACjC,QAAQ;QACR,IAAI,EAAE,KAAK;QACX,gBAAgB,EAAE,IAAI;KACvB,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"type-converter.js","sourceRoot":"","sources":["../../src/shared/type-converter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
import ts from "typescript";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Extracts type name from a TypeNode.
|
|
4
|
+
* Handles both simple identifiers and qualified names.
|
|
4
5
|
*/
|
|
5
|
-
export declare function
|
|
6
|
+
export declare function getTypeNameFromNode(typeNode: ts.TypeNode): string | null;
|
|
6
7
|
/**
|
|
7
8
|
* Checks if a type represents null or undefined.
|
|
8
9
|
*/
|
|
9
10
|
export declare function isNullOrUndefined(type: ts.Type): boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Filters non-null type nodes from a union type node.
|
|
13
|
+
*/
|
|
14
|
+
export declare function filterNonNullTypeNodes(typeNode: ts.UnionTypeNode): ts.TypeNode[];
|
|
15
|
+
/**
|
|
16
|
+
* Finds the first non-null type node from a union type node.
|
|
17
|
+
*/
|
|
18
|
+
export declare function findNonNullTypeNode(typeNode: ts.UnionTypeNode): ts.TypeNode | undefined;
|
|
10
19
|
/**
|
|
11
20
|
* Checks if a union type contains null or undefined.
|
|
12
21
|
*/
|
|
@@ -42,14 +51,32 @@ export declare function isAnonymousObjectType(type: ts.Type): boolean;
|
|
|
42
51
|
* and falling back to getApparentType when getProperties() returns empty.
|
|
43
52
|
*/
|
|
44
53
|
export declare function extractPropertySymbols(type: ts.Type, checker: ts.TypeChecker): ts.Symbol[];
|
|
45
|
-
export interface ShouldTreatIntersectionAsInlineOptions {
|
|
46
|
-
readonly checkBuiltinUtilityTypes?: boolean;
|
|
47
|
-
}
|
|
48
54
|
/**
|
|
49
55
|
* Determines if an intersection type should be treated as an inline object.
|
|
50
56
|
* Returns true when:
|
|
51
|
-
* - Case 1: Has at least one anonymous/inline member
|
|
57
|
+
* - Case 1: Has at least one anonymous/inline member
|
|
52
58
|
* - Case 2: All members are object-like types that should be merged
|
|
53
59
|
*/
|
|
54
|
-
export declare function shouldTreatIntersectionAsInline(type: ts.IntersectionType
|
|
60
|
+
export declare function shouldTreatIntersectionAsInline(type: ts.IntersectionType): boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Internal TypeScript symbol with parent reference.
|
|
63
|
+
* Used to access the parent enum symbol from enum member types.
|
|
64
|
+
*/
|
|
65
|
+
export type SymbolWithParent = ts.Symbol & {
|
|
66
|
+
parent?: ts.Symbol;
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* Finds the parent enum symbol if all types belong to the same enum.
|
|
70
|
+
* Returns null if types are empty, don't have a common parent enum, or belong to different enums.
|
|
71
|
+
*/
|
|
72
|
+
export declare function findEnumParentSymbol(types: readonly ts.Type[]): ts.Symbol | null;
|
|
73
|
+
/**
|
|
74
|
+
* Checks if a union type is a boolean union (true | false with optional null/undefined).
|
|
75
|
+
*/
|
|
76
|
+
export declare function isBooleanUnion(type: ts.Type): boolean;
|
|
77
|
+
/**
|
|
78
|
+
* Resolves a symbol to its original symbol by following alias chains.
|
|
79
|
+
* This is necessary for re-exports where the symbol is an alias.
|
|
80
|
+
*/
|
|
81
|
+
export declare function resolveOriginalSymbol(symbol: ts.Symbol, checker: ts.TypeChecker): ts.Symbol;
|
|
55
82
|
//# sourceMappingURL=typescript-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typescript-utils.d.ts","sourceRoot":"","sources":["../../src/shared/typescript-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"typescript-utils.d.ts","sourceRoot":"","sources":["../../src/shared/typescript-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAG5B;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,GAAG,MAAM,GAAG,IAAI,CAUxE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,OAAO,CAKxD;AAYD;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,EAAE,CAAC,aAAa,GACzB,EAAE,CAAC,QAAQ,EAAE,CAEf;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,EAAE,CAAC,aAAa,GACzB,EAAE,CAAC,QAAQ,GAAG,SAAS,CAEzB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,OAAO,CAGtD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,CAG5D;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,OAAO,CAMzD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,OAAO,CAGjD;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,OAAO,CAS5D;AAkBD;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,EAAE,CAAC,IAAI,EACb,OAAO,EAAE,EAAE,CAAC,WAAW,GACtB,EAAE,CAAC,MAAM,EAAE,CA0Bb;AAED;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,EAAE,CAAC,gBAAgB,GACxB,OAAO,CAcT;AAED;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,EAAE,CAAC,MAAM,GAAG;IAAE,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,CAAA;CAAE,CAAC;AAElE;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,GACxB,EAAE,CAAC,MAAM,GAAG,IAAI,CAgBlB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,OAAO,CAOrD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,EAAE,CAAC,MAAM,EACjB,OAAO,EAAE,EAAE,CAAC,WAAW,GACtB,EAAE,CAAC,MAAM,CAKX"}
|
|
@@ -1,25 +1,19 @@
|
|
|
1
1
|
import ts from "typescript";
|
|
2
2
|
import { isInlineObjectType } from "./inline-object-utils.js";
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Checks if a type is a built-in utility type like Omit, Pick, etc.
|
|
17
|
-
*/
|
|
18
|
-
export function isBuiltinUtilityType(type) {
|
|
19
|
-
if (!type.aliasSymbol) {
|
|
20
|
-
return false;
|
|
4
|
+
* Extracts type name from a TypeNode.
|
|
5
|
+
* Handles both simple identifiers and qualified names.
|
|
6
|
+
*/
|
|
7
|
+
export function getTypeNameFromNode(typeNode) {
|
|
8
|
+
if (ts.isTypeReferenceNode(typeNode)) {
|
|
9
|
+
if (ts.isIdentifier(typeNode.typeName)) {
|
|
10
|
+
return typeNode.typeName.text;
|
|
11
|
+
}
|
|
12
|
+
if (ts.isQualifiedName(typeNode.typeName)) {
|
|
13
|
+
return typeNode.typeName.right.text;
|
|
14
|
+
}
|
|
21
15
|
}
|
|
22
|
-
return
|
|
16
|
+
return null;
|
|
23
17
|
}
|
|
24
18
|
/**
|
|
25
19
|
* Checks if a type represents null or undefined.
|
|
@@ -28,6 +22,25 @@ export function isNullOrUndefined(type) {
|
|
|
28
22
|
return ((type.flags & ts.TypeFlags.Null) !== 0 ||
|
|
29
23
|
(type.flags & ts.TypeFlags.Undefined) !== 0);
|
|
30
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Checks if a TypeNode represents null (literal null type).
|
|
27
|
+
*/
|
|
28
|
+
function isNullTypeNode(typeNode) {
|
|
29
|
+
return (ts.isLiteralTypeNode(typeNode) &&
|
|
30
|
+
typeNode.literal.kind === ts.SyntaxKind.NullKeyword);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Filters non-null type nodes from a union type node.
|
|
34
|
+
*/
|
|
35
|
+
export function filterNonNullTypeNodes(typeNode) {
|
|
36
|
+
return typeNode.types.filter((t) => !isNullTypeNode(t));
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Finds the first non-null type node from a union type node.
|
|
40
|
+
*/
|
|
41
|
+
export function findNonNullTypeNode(typeNode) {
|
|
42
|
+
return filterNonNullTypeNodes(typeNode)[0];
|
|
43
|
+
}
|
|
31
44
|
/**
|
|
32
45
|
* Checks if a union type contains null or undefined.
|
|
33
46
|
*/
|
|
@@ -129,14 +142,11 @@ export function extractPropertySymbols(type, checker) {
|
|
|
129
142
|
/**
|
|
130
143
|
* Determines if an intersection type should be treated as an inline object.
|
|
131
144
|
* Returns true when:
|
|
132
|
-
* - Case 1: Has at least one anonymous/inline member
|
|
145
|
+
* - Case 1: Has at least one anonymous/inline member
|
|
133
146
|
* - Case 2: All members are object-like types that should be merged
|
|
134
147
|
*/
|
|
135
|
-
export function shouldTreatIntersectionAsInline(type
|
|
136
|
-
const
|
|
137
|
-
const hasResolvableMember = type.types.some((t) => isInlineObjectType(t) ||
|
|
138
|
-
isAnonymousObjectType(t) ||
|
|
139
|
-
(checkBuiltinUtilityTypes && isBuiltinUtilityType(t)));
|
|
148
|
+
export function shouldTreatIntersectionAsInline(type) {
|
|
149
|
+
const hasResolvableMember = type.types.some((t) => isInlineObjectType(t) || isAnonymousObjectType(t));
|
|
140
150
|
if (hasResolvableMember) {
|
|
141
151
|
return true;
|
|
142
152
|
}
|
|
@@ -146,4 +156,42 @@ export function shouldTreatIntersectionAsInline(type, options = {}) {
|
|
|
146
156
|
}
|
|
147
157
|
return false;
|
|
148
158
|
}
|
|
159
|
+
/**
|
|
160
|
+
* Finds the parent enum symbol if all types belong to the same enum.
|
|
161
|
+
* Returns null if types are empty, don't have a common parent enum, or belong to different enums.
|
|
162
|
+
*/
|
|
163
|
+
export function findEnumParentSymbol(types) {
|
|
164
|
+
if (types.length === 0)
|
|
165
|
+
return null;
|
|
166
|
+
const firstSymbol = types[0].symbol;
|
|
167
|
+
const parentSymbol = firstSymbol?.parent;
|
|
168
|
+
if (!parentSymbol || !(parentSymbol.flags & ts.SymbolFlags.Enum)) {
|
|
169
|
+
return null;
|
|
170
|
+
}
|
|
171
|
+
const allBelongToSameEnum = types.every((t) => {
|
|
172
|
+
const sym = t.symbol;
|
|
173
|
+
return sym?.parent === parentSymbol;
|
|
174
|
+
});
|
|
175
|
+
return allBelongToSameEnum ? parentSymbol : null;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Checks if a union type is a boolean union (true | false with optional null/undefined).
|
|
179
|
+
*/
|
|
180
|
+
export function isBooleanUnion(type) {
|
|
181
|
+
if (!type.isUnion())
|
|
182
|
+
return false;
|
|
183
|
+
const nonNullTypes = getNonNullableTypes(type);
|
|
184
|
+
return (nonNullTypes.length === 2 &&
|
|
185
|
+
nonNullTypes.every((t) => t.flags & ts.TypeFlags.BooleanLiteral));
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Resolves a symbol to its original symbol by following alias chains.
|
|
189
|
+
* This is necessary for re-exports where the symbol is an alias.
|
|
190
|
+
*/
|
|
191
|
+
export function resolveOriginalSymbol(symbol, checker) {
|
|
192
|
+
if (symbol.flags & ts.SymbolFlags.Alias) {
|
|
193
|
+
return checker.getAliasedSymbol(symbol);
|
|
194
|
+
}
|
|
195
|
+
return symbol;
|
|
196
|
+
}
|
|
149
197
|
//# sourceMappingURL=typescript-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typescript-utils.js","sourceRoot":"","sources":["../../src/shared/typescript-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D;;;GAGG;AACH,MAAM,
|
|
1
|
+
{"version":3,"file":"typescript-utils.js","sourceRoot":"","sources":["../../src/shared/typescript-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scalar-collector.d.ts","sourceRoot":"","sources":["../../../src/type-extractor/collector/scalar-collector.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,8BAA8B;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,+BAA+B;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI,CAAC;IACzC,uBAAuB;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,iCAAiC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,qCAAqC;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC7D,kDAAkD;IAClD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,2BAA2B;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,uBAAuB;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,iCAAiC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,uBAAuB;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,uBAAuB;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,iCAAiC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,0BAA0B;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,kDAAkD;IAClD,QAAQ,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI,CAAC;IACzC,4EAA4E;IAC5E,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IACnD,0BAA0B;IAC1B,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IACxD,qDAAqD;IACrD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,EACT,sBAAsB,GACtB,oBAAoB,GACpB,qBAAqB,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAC5B;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAA;CAAE,GAC3D;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,aAAa,CAAC,yBAAyB,CAAC,CAAA;CAAE,CAAC;AAuCzE;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,aAAa,CAAC,iBAAiB,CAAC,GAC7C,MAAM,GAAG,IAAI,CAKf;AAaD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,oEAAoE;IACpE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAC9C,aAAa,EAAE,aAAa,CAAC,mBAAmB,CAAC,EACjD,OAAO,GAAE,qBAA0B,GAClC,oBAAoB,
|
|
1
|
+
{"version":3,"file":"scalar-collector.d.ts","sourceRoot":"","sources":["../../../src/type-extractor/collector/scalar-collector.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,8BAA8B;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,+BAA+B;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI,CAAC;IACzC,uBAAuB;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,iCAAiC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,qCAAqC;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC7D,kDAAkD;IAClD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,2BAA2B;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,uBAAuB;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,iCAAiC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,uBAAuB;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,uBAAuB;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,iCAAiC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,0BAA0B;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,kDAAkD;IAClD,QAAQ,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI,CAAC;IACzC,4EAA4E;IAC5E,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IACnD,0BAA0B;IAC1B,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IACxD,qDAAqD;IACrD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,EACT,sBAAsB,GACtB,oBAAoB,GACpB,qBAAqB,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAC5B;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAA;CAAE,GAC3D;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,aAAa,CAAC,yBAAyB,CAAC,CAAA;CAAE,CAAC;AAuCzE;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,aAAa,CAAC,iBAAiB,CAAC,GAC7C,MAAM,GAAG,IAAI,CAKf;AAaD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,oEAAoE;IACpE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAC9C,aAAa,EAAE,aAAa,CAAC,mBAAmB,CAAC,EACjD,OAAO,GAAE,qBAA0B,GAClC,oBAAoB,CA0EtB"}
|
|
@@ -101,20 +101,10 @@ export function collectScalars(scalarInfos, configScalars, options = {}) {
|
|
|
101
101
|
});
|
|
102
102
|
continue;
|
|
103
103
|
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
severity: "error",
|
|
109
|
-
});
|
|
110
|
-
continue;
|
|
111
|
-
}
|
|
112
|
-
if (group.outputTypes.length === 0) {
|
|
113
|
-
diagnostics.push({
|
|
114
|
-
code: "MISSING_OUTPUT_TYPE",
|
|
115
|
-
message: `Custom scalar '${scalarName}' has no output type. Add a type without 'only' constraint or with 'only: "output"'.`,
|
|
116
|
-
severity: "error",
|
|
117
|
-
});
|
|
104
|
+
// Allow input-only scalars (no output type required) and output-only scalars (no input type required)
|
|
105
|
+
// These are valid for context-specific scalar usage patterns (Requirements 3.1, 3.2, 3.3)
|
|
106
|
+
if (group.inputTypes.length === 0 && group.outputTypes.length === 0) {
|
|
107
|
+
// Both missing - this shouldn't happen but guard against it
|
|
118
108
|
continue;
|
|
119
109
|
}
|
|
120
110
|
collectedScalars.push({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scalar-collector.js","sourceRoot":"","sources":["../../../src/type-extractor/collector/scalar-collector.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"scalar-collector.js","sourceRoot":"","sources":["../../../src/type-extractor/collector/scalar-collector.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql-converter.d.ts","sourceRoot":"","sources":["../../../src/type-extractor/converter/graphql-converter.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,UAAU,EAGV,iBAAiB,EAEjB,eAAe,EAIhB,MAAM,mBAAmB,CAAC;AAO3B,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IAC/C,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;CACjD;
|
|
1
|
+
{"version":3,"file":"graphql-converter.d.ts","sourceRoot":"","sources":["../../../src/type-extractor/converter/graphql-converter.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,UAAU,EAGV,iBAAiB,EAEjB,eAAe,EAIhB,MAAM,mBAAmB,CAAC;AAO3B,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IAC/C,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;CACjD;AAmQD,wBAAgB,gBAAgB,CAC9B,cAAc,EAAE,aAAa,CAAC,iBAAiB,CAAC,GAC/C,gBAAgB,CA2KlB"}
|
|
@@ -17,10 +17,13 @@ function toScreamingSnakeCase(value) {
|
|
|
17
17
|
.replace(/([A-Z]+)([A-Z][a-z])/g, "$1_$2")
|
|
18
18
|
.toUpperCase();
|
|
19
19
|
}
|
|
20
|
-
function convertEnumMembers(
|
|
20
|
+
function convertEnumMembers(params) {
|
|
21
|
+
const { members, enumName, sourceFile, enumLocation } = params;
|
|
21
22
|
const values = [];
|
|
22
23
|
const diagnostics = [];
|
|
23
24
|
let isNumeric = false;
|
|
25
|
+
let needsMapping = false;
|
|
26
|
+
const convertedNameToOriginals = new Map();
|
|
24
27
|
for (const member of members) {
|
|
25
28
|
const convertedName = toScreamingSnakeCase(member.name);
|
|
26
29
|
const eligibility = isEligibleAsEnumValue(convertedName, member.name);
|
|
@@ -40,6 +43,12 @@ function convertEnumMembers(members, sourceFile) {
|
|
|
40
43
|
if (member.numericValue !== null) {
|
|
41
44
|
isNumeric = true;
|
|
42
45
|
}
|
|
46
|
+
if (convertedName !== member.value) {
|
|
47
|
+
needsMapping = true;
|
|
48
|
+
}
|
|
49
|
+
const existingOriginals = convertedNameToOriginals.get(convertedName) ?? [];
|
|
50
|
+
existingOriginals.push(member.value);
|
|
51
|
+
convertedNameToOriginals.set(convertedName, existingOriginals);
|
|
43
52
|
values.push({
|
|
44
53
|
name: convertedName,
|
|
45
54
|
originalValue: member.value,
|
|
@@ -48,7 +57,19 @@ function convertEnumMembers(members, sourceFile) {
|
|
|
48
57
|
deprecated: member.deprecated,
|
|
49
58
|
});
|
|
50
59
|
}
|
|
51
|
-
|
|
60
|
+
let hasError = false;
|
|
61
|
+
for (const [convertedName, originals] of convertedNameToOriginals) {
|
|
62
|
+
if (originals.length > 1) {
|
|
63
|
+
diagnostics.push({
|
|
64
|
+
code: "DUPLICATE_ENUM_VALUE_AFTER_CONVERSION",
|
|
65
|
+
message: `Enum '${enumName}' has duplicate value '${convertedName}' after conversion (from '${originals.join("' and '")}')`,
|
|
66
|
+
severity: "error",
|
|
67
|
+
location: enumLocation,
|
|
68
|
+
});
|
|
69
|
+
hasError = true;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return { values, diagnostics, isNumeric, needsMapping, hasError };
|
|
52
73
|
}
|
|
53
74
|
function convertFields(extracted, isInput) {
|
|
54
75
|
const fields = [];
|
|
@@ -195,8 +216,21 @@ export function convertToGraphQL(extractedTypes) {
|
|
|
195
216
|
location: { file: metadata.sourceFile, line: 1, column: 1 },
|
|
196
217
|
});
|
|
197
218
|
}
|
|
198
|
-
const
|
|
219
|
+
const enumLocation = metadata.sourceLocation ?? {
|
|
220
|
+
file: metadata.sourceFile,
|
|
221
|
+
line: 1,
|
|
222
|
+
column: 1,
|
|
223
|
+
};
|
|
224
|
+
const { values: enumValues, diagnostics: enumDiagnostics, isNumeric, needsMapping, hasError, } = convertEnumMembers({
|
|
225
|
+
members: extracted.enumMembers ?? [],
|
|
226
|
+
enumName: metadata.name,
|
|
227
|
+
sourceFile: metadata.sourceFile,
|
|
228
|
+
enumLocation,
|
|
229
|
+
});
|
|
199
230
|
diagnostics.push(...enumDiagnostics);
|
|
231
|
+
if (hasError) {
|
|
232
|
+
continue;
|
|
233
|
+
}
|
|
200
234
|
types.push({
|
|
201
235
|
name: metadata.name,
|
|
202
236
|
kind: "Enum",
|
|
@@ -204,6 +238,7 @@ export function convertToGraphQL(extractedTypes) {
|
|
|
204
238
|
unionMembers: null,
|
|
205
239
|
enumValues,
|
|
206
240
|
isNumericEnum: isNumeric,
|
|
241
|
+
needsStringEnumMapping: !isNumeric && needsMapping,
|
|
207
242
|
implementedInterfaces: null,
|
|
208
243
|
sourceFile: metadata.sourceFile,
|
|
209
244
|
description: metadata.description,
|
|
@@ -221,6 +256,7 @@ export function convertToGraphQL(extractedTypes) {
|
|
|
221
256
|
unionMembers: null,
|
|
222
257
|
enumValues: null,
|
|
223
258
|
isNumericEnum: false,
|
|
259
|
+
needsStringEnumMapping: false,
|
|
224
260
|
implementedInterfaces: extracted.implementedInterfaces
|
|
225
261
|
? [...extracted.implementedInterfaces]
|
|
226
262
|
: null,
|
|
@@ -245,6 +281,7 @@ export function convertToGraphQL(extractedTypes) {
|
|
|
245
281
|
unionMembers: null,
|
|
246
282
|
enumValues: null,
|
|
247
283
|
isNumericEnum: false,
|
|
284
|
+
needsStringEnumMapping: false,
|
|
248
285
|
implementedInterfaces: null,
|
|
249
286
|
sourceFile: metadata.sourceFile,
|
|
250
287
|
description: metadata.description,
|
|
@@ -265,6 +302,7 @@ export function convertToGraphQL(extractedTypes) {
|
|
|
265
302
|
unionMembers,
|
|
266
303
|
enumValues: null,
|
|
267
304
|
isNumericEnum: false,
|
|
305
|
+
needsStringEnumMapping: false,
|
|
268
306
|
implementedInterfaces: null,
|
|
269
307
|
sourceFile: metadata.sourceFile,
|
|
270
308
|
description: metadata.description,
|
|
@@ -284,6 +322,7 @@ export function convertToGraphQL(extractedTypes) {
|
|
|
284
322
|
unionMembers: null,
|
|
285
323
|
enumValues: null,
|
|
286
324
|
isNumericEnum: false,
|
|
325
|
+
needsStringEnumMapping: false,
|
|
287
326
|
implementedInterfaces: extracted.implementedInterfaces
|
|
288
327
|
? [...extracted.implementedInterfaces]
|
|
289
328
|
: null,
|