@gqlkit-ts/cli 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auto-type-generator/auto-type-generator.d.ts +7 -0
- package/dist/auto-type-generator/auto-type-generator.d.ts.map +1 -1
- package/dist/auto-type-generator/auto-type-generator.js +375 -55
- package/dist/auto-type-generator/auto-type-generator.js.map +1 -1
- package/dist/auto-type-generator/discriminator-field-validator.d.ts +26 -0
- package/dist/auto-type-generator/discriminator-field-validator.d.ts.map +1 -0
- package/dist/auto-type-generator/discriminator-field-validator.js +242 -0
- package/dist/auto-type-generator/discriminator-field-validator.js.map +1 -0
- package/dist/auto-type-generator/discriminator-naming.d.ts +11 -0
- package/dist/auto-type-generator/discriminator-naming.d.ts.map +1 -0
- package/dist/auto-type-generator/discriminator-naming.js +15 -0
- package/dist/auto-type-generator/discriminator-naming.js.map +1 -0
- package/dist/auto-type-generator/discriminator-resolve-type-generator.d.ts +44 -0
- package/dist/auto-type-generator/discriminator-resolve-type-generator.d.ts.map +1 -0
- package/dist/auto-type-generator/discriminator-resolve-type-generator.js +77 -0
- package/dist/auto-type-generator/discriminator-resolve-type-generator.js.map +1 -0
- package/dist/auto-type-generator/index.d.ts +3 -0
- package/dist/auto-type-generator/index.d.ts.map +1 -1
- package/dist/auto-type-generator/index.js +3 -0
- package/dist/auto-type-generator/index.js.map +1 -1
- package/dist/auto-type-generator/inline-enum-collector.d.ts.map +1 -1
- package/dist/auto-type-generator/inline-enum-collector.js +14 -7
- package/dist/auto-type-generator/inline-enum-collector.js.map +1 -1
- package/dist/auto-type-generator/inline-object-converter.d.ts +12 -0
- package/dist/auto-type-generator/inline-object-converter.d.ts.map +1 -0
- package/dist/auto-type-generator/inline-object-converter.js +72 -0
- package/dist/auto-type-generator/inline-object-converter.js.map +1 -0
- package/dist/auto-type-generator/inline-object-traverser.d.ts +2 -1
- package/dist/auto-type-generator/inline-object-traverser.d.ts.map +1 -1
- package/dist/auto-type-generator/inline-object-traverser.js +22 -4
- package/dist/auto-type-generator/inline-object-traverser.js.map +1 -1
- package/dist/auto-type-generator/inline-union-collector.d.ts.map +1 -1
- package/dist/auto-type-generator/inline-union-collector.js +20 -6
- package/dist/auto-type-generator/inline-union-collector.js.map +1 -1
- package/dist/auto-type-generator/inline-union-types.d.ts +2 -0
- package/dist/auto-type-generator/inline-union-types.d.ts.map +1 -1
- package/dist/auto-type-generator/inline-union-validator.js +3 -3
- package/dist/auto-type-generator/inline-union-validator.js.map +1 -1
- package/dist/auto-type-generator/intersection-flattener.d.ts +44 -0
- package/dist/auto-type-generator/intersection-flattener.d.ts.map +1 -0
- package/dist/auto-type-generator/intersection-flattener.js +398 -0
- package/dist/auto-type-generator/intersection-flattener.js.map +1 -0
- package/dist/auto-type-generator/naming-convention.d.ts +21 -0
- package/dist/auto-type-generator/naming-convention.d.ts.map +1 -1
- package/dist/auto-type-generator/naming-convention.js +145 -1
- package/dist/auto-type-generator/naming-convention.js.map +1 -1
- package/dist/auto-type-generator/typename-extractor.d.ts +2 -0
- package/dist/auto-type-generator/typename-extractor.d.ts.map +1 -1
- package/dist/auto-type-generator/typename-extractor.js +11 -3
- package/dist/auto-type-generator/typename-extractor.js.map +1 -1
- package/dist/auto-type-generator/typename-resolve-type-generator.d.ts +2 -0
- package/dist/auto-type-generator/typename-resolve-type-generator.d.ts.map +1 -1
- package/dist/auto-type-generator/typename-resolve-type-generator.js +12 -84
- package/dist/auto-type-generator/typename-resolve-type-generator.js.map +1 -1
- package/dist/auto-type-generator/typename-types.d.ts +4 -0
- package/dist/auto-type-generator/typename-types.d.ts.map +1 -1
- package/dist/auto-type-generator/typename-types.js +6 -0
- package/dist/auto-type-generator/typename-types.js.map +1 -1
- package/dist/auto-type-generator/typename-validator.d.ts.map +1 -1
- package/dist/auto-type-generator/typename-validator.js +4 -3
- package/dist/auto-type-generator/typename-validator.js.map +1 -1
- package/dist/commands/gen.d.ts.map +1 -1
- package/dist/commands/gen.js +2 -1
- package/dist/commands/gen.js.map +1 -1
- package/dist/config/types.d.ts +7 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config-loader/index.d.ts +1 -1
- package/dist/config-loader/index.d.ts.map +1 -1
- package/dist/config-loader/index.js.map +1 -1
- package/dist/config-loader/loader.d.ts +6 -0
- package/dist/config-loader/loader.d.ts.map +1 -1
- package/dist/config-loader/loader.js +1 -0
- package/dist/config-loader/loader.js.map +1 -1
- package/dist/config-loader/validator.d.ts.map +1 -1
- package/dist/config-loader/validator.js +84 -1
- package/dist/config-loader/validator.js.map +1 -1
- package/dist/gen-orchestrator/orchestrator.d.ts +2 -1
- package/dist/gen-orchestrator/orchestrator.d.ts.map +1 -1
- package/dist/gen-orchestrator/orchestrator.js +15 -2
- package/dist/gen-orchestrator/orchestrator.js.map +1 -1
- package/dist/resolver-extractor/extractor/define-api-extractor.d.ts.map +1 -1
- package/dist/resolver-extractor/extractor/define-api-extractor.js +4 -0
- package/dist/resolver-extractor/extractor/define-api-extractor.js.map +1 -1
- package/dist/resolver-extractor/validator/abstract-resolver-validator.d.ts +2 -0
- package/dist/resolver-extractor/validator/abstract-resolver-validator.d.ts.map +1 -1
- package/dist/resolver-extractor/validator/abstract-resolver-validator.js +16 -3
- package/dist/resolver-extractor/validator/abstract-resolver-validator.js.map +1 -1
- package/dist/schema-generator/emitter/code-emitter.d.ts.map +1 -1
- package/dist/schema-generator/emitter/code-emitter.js +13 -1
- package/dist/schema-generator/emitter/code-emitter.js.map +1 -1
- package/dist/schema-generator/emitter/discriminator-resolve-type-emitter.d.ts +18 -0
- package/dist/schema-generator/emitter/discriminator-resolve-type-emitter.d.ts.map +1 -0
- package/dist/schema-generator/emitter/discriminator-resolve-type-emitter.js +89 -0
- package/dist/schema-generator/emitter/discriminator-resolve-type-emitter.js.map +1 -0
- package/dist/schema-generator/generate-schema.d.ts +2 -0
- package/dist/schema-generator/generate-schema.d.ts.map +1 -1
- package/dist/schema-generator/generate-schema.js +69 -10
- package/dist/schema-generator/generate-schema.js.map +1 -1
- package/dist/schema-generator/integrator/result-integrator.d.ts +4 -0
- package/dist/schema-generator/integrator/result-integrator.d.ts.map +1 -1
- package/dist/schema-generator/integrator/result-integrator.js +18 -2
- package/dist/schema-generator/integrator/result-integrator.js.map +1 -1
- package/dist/schema-generator/resolver-collector/resolver-collector.d.ts +2 -0
- package/dist/schema-generator/resolver-collector/resolver-collector.d.ts.map +1 -1
- package/dist/schema-generator/resolver-collector/resolver-collector.js +4 -0
- package/dist/schema-generator/resolver-collector/resolver-collector.js.map +1 -1
- package/dist/shared/constants.d.ts.map +1 -1
- package/dist/shared/constants.js +14 -1
- package/dist/shared/constants.js.map +1 -1
- package/dist/shared/enum-prefix-detector.d.ts.map +1 -1
- package/dist/shared/enum-prefix-detector.js +78 -8
- package/dist/shared/enum-prefix-detector.js.map +1 -1
- package/dist/shared/inline-object-utils.js +1 -1
- package/dist/shared/inline-object-utils.js.map +1 -1
- package/dist/shared/type-converter.d.ts.map +1 -1
- package/dist/shared/type-converter.js +55 -0
- package/dist/shared/type-converter.js.map +1 -1
- package/dist/type-extractor/converter/graphql-converter.d.ts.map +1 -1
- package/dist/type-extractor/converter/graphql-converter.js +11 -1
- package/dist/type-extractor/converter/graphql-converter.js.map +1 -1
- package/dist/type-extractor/extractor/field-type-resolver.d.ts +18 -0
- package/dist/type-extractor/extractor/field-type-resolver.d.ts.map +1 -1
- package/dist/type-extractor/extractor/field-type-resolver.js +198 -15
- package/dist/type-extractor/extractor/field-type-resolver.js.map +1 -1
- package/dist/type-extractor/extractor/type-extractor.d.ts +1 -0
- package/dist/type-extractor/extractor/type-extractor.d.ts.map +1 -1
- package/dist/type-extractor/extractor/type-extractor.js +100 -9
- package/dist/type-extractor/extractor/type-extractor.js.map +1 -1
- 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/index.d.ts +1 -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 +7 -1
- package/dist/type-extractor/types/ts-type-reference-factory.d.ts.map +1 -1
- package/dist/type-extractor/types/ts-type-reference-factory.js +18 -3
- package/dist/type-extractor/types/ts-type-reference-factory.js.map +1 -1
- package/dist/type-extractor/types/typescript.d.ts +3 -1
- package/dist/type-extractor/types/typescript.d.ts.map +1 -1
- package/dist/type-extractor/validator/type-validator.d.ts.map +1 -1
- package/dist/type-extractor/validator/type-validator.js +6 -1
- package/dist/type-extractor/validator/type-validator.js.map +1 -1
- package/docs/configuration.md +19 -0
- package/docs/index.md +1 -0
- package/docs/integration/ai-sdk.md +189 -0
- package/docs/schema/unions.md +117 -0
- package/package.json +2 -2
- package/src/auto-type-generator/auto-type-generator.ts +576 -58
- package/src/auto-type-generator/discriminator-field-validator.ts +368 -0
- package/src/auto-type-generator/discriminator-naming.ts +24 -0
- package/src/auto-type-generator/discriminator-resolve-type-generator.ts +136 -0
- package/src/auto-type-generator/index.ts +17 -0
- package/src/auto-type-generator/inline-enum-collector.ts +19 -4
- package/src/auto-type-generator/inline-object-converter.ts +100 -0
- package/src/auto-type-generator/inline-object-traverser.ts +33 -7
- package/src/auto-type-generator/inline-union-collector.ts +26 -4
- package/src/auto-type-generator/inline-union-types.ts +2 -0
- package/src/auto-type-generator/inline-union-validator.ts +3 -3
- package/src/auto-type-generator/intersection-flattener.ts +554 -0
- package/src/auto-type-generator/naming-convention.ts +205 -1
- package/src/auto-type-generator/typename-extractor.ts +17 -3
- package/src/auto-type-generator/typename-resolve-type-generator.ts +19 -108
- package/src/auto-type-generator/typename-types.ts +7 -0
- package/src/auto-type-generator/typename-validator.ts +4 -3
- package/src/commands/gen.ts +9 -2
- package/src/config/types.ts +10 -0
- package/src/config-loader/index.ts +1 -0
- package/src/config-loader/loader.ts +11 -0
- package/src/config-loader/validator.ts +100 -1
- package/src/gen-orchestrator/orchestrator.ts +19 -2
- package/src/resolver-extractor/extractor/define-api-extractor.ts +4 -0
- package/src/resolver-extractor/validator/abstract-resolver-validator.ts +20 -6
- package/src/schema-generator/emitter/code-emitter.ts +26 -1
- package/src/schema-generator/emitter/discriminator-resolve-type-emitter.ts +125 -0
- package/src/schema-generator/generate-schema.ts +100 -13
- package/src/schema-generator/integrator/result-integrator.ts +25 -1
- package/src/schema-generator/resolver-collector/resolver-collector.ts +7 -0
- package/src/shared/constants.ts +15 -1
- package/src/shared/enum-prefix-detector.ts +96 -8
- package/src/shared/inline-object-utils.ts +1 -1
- package/src/shared/type-converter.ts +63 -0
- package/src/type-extractor/converter/graphql-converter.ts +17 -1
- package/src/type-extractor/extractor/field-type-resolver.ts +241 -16
- package/src/type-extractor/extractor/type-extractor.ts +119 -5
- package/src/type-extractor/types/diagnostics.ts +10 -1
- package/src/type-extractor/types/index.ts +2 -1
- package/src/type-extractor/types/ts-type-reference-factory.ts +24 -3
- package/src/type-extractor/types/typescript.ts +6 -2
- package/src/type-extractor/validator/type-validator.ts +6 -1
|
@@ -1,13 +1,15 @@
|
|
|
1
|
+
import { relative } from "node:path";
|
|
1
2
|
import ts from "typescript";
|
|
2
3
|
import { detectBrandedType, detectUniformBrandedType, } from "../../shared/branded-type-detector.js";
|
|
3
4
|
import { isInternalTypeSymbol } from "../../shared/constants.js";
|
|
4
5
|
import { extractInlineObjectProperties as extractInlineObjectPropertiesShared } from "../../shared/inline-object-extractor.js";
|
|
5
6
|
import { isInlineObjectType } from "../../shared/inline-object-utils.js";
|
|
6
7
|
import { detectScalarMetadata } from "../../shared/metadata-detector.js";
|
|
8
|
+
import { getSourceLocationFromNode, } from "../../shared/source-location.js";
|
|
7
9
|
import { extractTsDocFromSymbol, } from "../../shared/tsdoc-parser.js";
|
|
8
10
|
import { findEnumParentSymbol, findNonNullTypeNode, getNonNullableTypes, getTypeNameFromNode, isBooleanUnion, isNullableUnion, resolveOriginalSymbol, } from "../../shared/typescript-utils.js";
|
|
9
11
|
import { lookupScalarMapping } from "../mapper/scalar-base-type-mapper.js";
|
|
10
|
-
import { createArrayType, createInlineEnumType, createInlineObjectType,
|
|
12
|
+
import { createArrayType, createInlineEnumType, createInlineObjectType, createNeverType, createNumericLiteralType, createPrimitiveType, createReferenceType, createScalarType, createStringLiteralType, createUnionType, } from "../types/ts-type-reference-factory.js";
|
|
11
13
|
/**
|
|
12
14
|
* Resolves a TypeScript type to a TSTypeReference for use in field context.
|
|
13
15
|
*
|
|
@@ -119,8 +121,25 @@ function resolveFieldTypeInternal(type, typeNode, ctx) {
|
|
|
119
121
|
const innerResult = resolveFieldTypeInternal(nonNullTypes[0], nonNullTypeNode, ctx);
|
|
120
122
|
return { ...innerResult, nullable };
|
|
121
123
|
}
|
|
122
|
-
const memberResults = nonNullTypes.map((t) =>
|
|
123
|
-
|
|
124
|
+
const memberResults = nonNullTypes.map((t) => {
|
|
125
|
+
const result = resolveFieldTypeInternal(t, undefined, ctx);
|
|
126
|
+
// If the result is an unresolvable reference and the original type is an
|
|
127
|
+
// object type with properties, try to expand it as an inline object.
|
|
128
|
+
// This handles external library types used as union members.
|
|
129
|
+
// When type discovery is active, discovered types are kept as references
|
|
130
|
+
// so they can be registered with their original names later.
|
|
131
|
+
if (result.kind === "reference" &&
|
|
132
|
+
result.name !== null &&
|
|
133
|
+
!ctx.knownTypeNames.has(result.name) &&
|
|
134
|
+
t.flags & ts.TypeFlags.Object &&
|
|
135
|
+
t.getProperties().length > 0 &&
|
|
136
|
+
!ctx.discoveredTypes?.has(result.name)) {
|
|
137
|
+
return tryExtractAsInlineObject(t, ctx, result.name);
|
|
138
|
+
}
|
|
139
|
+
return result;
|
|
140
|
+
});
|
|
141
|
+
const aliasName = type.aliasSymbol?.getName() ?? null;
|
|
142
|
+
return createUnionType({ members: memberResults, nullable, aliasName });
|
|
124
143
|
}
|
|
125
144
|
// Array type handling
|
|
126
145
|
if (checker.isArrayType(type)) {
|
|
@@ -135,6 +154,25 @@ function resolveFieldTypeInternal(type, typeNode, ctx) {
|
|
|
135
154
|
: createPrimitiveType({ name: "unknown", nullable: false });
|
|
136
155
|
return createArrayType(elementResult);
|
|
137
156
|
}
|
|
157
|
+
// Never type — represents an impossible value, skip this field
|
|
158
|
+
// Also handles `undefined` which results from `field?: never` (never | undefined simplifies to undefined)
|
|
159
|
+
if (type.flags & ts.TypeFlags.Never || type.flags & ts.TypeFlags.Undefined) {
|
|
160
|
+
return createNeverType();
|
|
161
|
+
}
|
|
162
|
+
// Unknown type — represents arbitrary values, map to JSON scalar (graphql-scalars)
|
|
163
|
+
if (type.flags & ts.TypeFlags.Unknown) {
|
|
164
|
+
return createScalarType({
|
|
165
|
+
name: "JSON",
|
|
166
|
+
scalarInfo: {
|
|
167
|
+
scalarName: "JSON",
|
|
168
|
+
typeName: "unknown",
|
|
169
|
+
baseType: undefined,
|
|
170
|
+
isCustom: true,
|
|
171
|
+
only: null,
|
|
172
|
+
},
|
|
173
|
+
nullable: false,
|
|
174
|
+
});
|
|
175
|
+
}
|
|
138
176
|
// Primitive types
|
|
139
177
|
const typeString = checker.typeToString(type);
|
|
140
178
|
if (type.flags & ts.TypeFlags.String) {
|
|
@@ -148,10 +186,14 @@ function resolveFieldTypeInternal(type, typeNode, ctx) {
|
|
|
148
186
|
return createPrimitiveType({ name: "boolean", nullable: false });
|
|
149
187
|
}
|
|
150
188
|
if (type.flags & ts.TypeFlags.StringLiteral) {
|
|
151
|
-
return
|
|
189
|
+
return createStringLiteralType(typeString.replace(/"/g, ""));
|
|
152
190
|
}
|
|
153
191
|
if (type.flags & ts.TypeFlags.NumberLiteral) {
|
|
154
|
-
return
|
|
192
|
+
return createNumericLiteralType(typeString);
|
|
193
|
+
}
|
|
194
|
+
// Template literal types (e.g., `prefix-${string}`) represent string subsets
|
|
195
|
+
if (type.flags & ts.TypeFlags.TemplateLiteral) {
|
|
196
|
+
return createPrimitiveType({ name: "string", nullable: false });
|
|
155
197
|
}
|
|
156
198
|
// Intersection types in field context
|
|
157
199
|
// GraphQL doesn't have intersection types, so we must resolve them appropriately
|
|
@@ -186,11 +228,62 @@ function resolveFieldTypeInternal(type, typeNode, ctx) {
|
|
|
186
228
|
nullable: false,
|
|
187
229
|
});
|
|
188
230
|
}
|
|
189
|
-
// 4.
|
|
190
|
-
|
|
231
|
+
// 4. Register in discoveredTypes if applicable (same logic as alias expansion)
|
|
232
|
+
// This handles non-exported recursive intersection types that would otherwise
|
|
233
|
+
// cause cycle detection failures in tryExtractAsInlineObject.
|
|
234
|
+
if (type.aliasSymbol) {
|
|
235
|
+
const aliasName = type.aliasSymbol.getName();
|
|
236
|
+
if (!knownTypeNames.has(aliasName)) {
|
|
237
|
+
if (ctx.discoveredTypes && !ctx.discoveredTypes.has(aliasName)) {
|
|
238
|
+
const resolvedAliasSymbol = resolveOriginalSymbol(type.aliasSymbol, checker);
|
|
239
|
+
const declarations = resolvedAliasSymbol.getDeclarations();
|
|
240
|
+
const decl = declarations?.[0];
|
|
241
|
+
if (decl && !decl.getSourceFile().isDeclarationFile) {
|
|
242
|
+
const properties = type.getProperties();
|
|
243
|
+
if (properties.length > 0) {
|
|
244
|
+
const declSourceFile = decl.getSourceFile();
|
|
245
|
+
const location = getSourceLocationFromNode(decl) ?? {
|
|
246
|
+
file: declSourceFile.fileName,
|
|
247
|
+
line: 1,
|
|
248
|
+
column: 1,
|
|
249
|
+
};
|
|
250
|
+
ctx.discoveredTypes.set(aliasName, {
|
|
251
|
+
name: aliasName,
|
|
252
|
+
tsType: type,
|
|
253
|
+
tsSymbol: resolvedAliasSymbol,
|
|
254
|
+
sourceFile: relative(process.cwd(), declSourceFile.fileName),
|
|
255
|
+
sourceLocation: location,
|
|
256
|
+
});
|
|
257
|
+
return createReferenceType({ name: aliasName, nullable: false });
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
if (ctx.discoveredTypes?.has(aliasName)) {
|
|
262
|
+
return createReferenceType({ name: aliasName, nullable: false });
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
// 5. Otherwise, treat as inline object
|
|
267
|
+
return tryExtractAsInlineObject(type, ctx, null);
|
|
191
268
|
}
|
|
192
269
|
// Inline object type handling
|
|
193
270
|
if (isInlineObjectType(type)) {
|
|
271
|
+
// Index signature types (Record<string, T>, { [key: string]: T })
|
|
272
|
+
// These have no named properties, only index signatures — map to JSONObject (graphql-scalars)
|
|
273
|
+
const hasStringIndex = checker.getIndexTypeOfType(type, ts.IndexKind.String) !== undefined;
|
|
274
|
+
if (hasStringIndex && type.getProperties().length === 0) {
|
|
275
|
+
return createScalarType({
|
|
276
|
+
name: "JSONObject",
|
|
277
|
+
scalarInfo: {
|
|
278
|
+
scalarName: "JSONObject",
|
|
279
|
+
typeName: "Record",
|
|
280
|
+
baseType: undefined,
|
|
281
|
+
isCustom: true,
|
|
282
|
+
only: null,
|
|
283
|
+
},
|
|
284
|
+
nullable: false,
|
|
285
|
+
});
|
|
286
|
+
}
|
|
194
287
|
// Check if typeNode references a known type
|
|
195
288
|
if (typeNode && ts.isTypeReferenceNode(typeNode)) {
|
|
196
289
|
const typeName = getTypeNameFromNode(typeNode);
|
|
@@ -200,12 +293,27 @@ function resolveFieldTypeInternal(type, typeNode, ctx) {
|
|
|
200
293
|
return createReferenceType({ name: typeName, nullable: false });
|
|
201
294
|
}
|
|
202
295
|
}
|
|
203
|
-
return tryExtractAsInlineObject(type, ctx);
|
|
296
|
+
return tryExtractAsInlineObject(type, ctx, null);
|
|
204
297
|
}
|
|
205
298
|
// Mapped types (utility types like Omit, Pick, user-defined utilities)
|
|
206
299
|
if (type.flags & ts.TypeFlags.Object) {
|
|
207
300
|
const objectType = type;
|
|
208
301
|
if (objectType.objectFlags & ts.ObjectFlags.Mapped) {
|
|
302
|
+
// Index signature mapped types (Record<string, T>) — map to JSONObject (graphql-scalars)
|
|
303
|
+
const hasMappedStringIndex = checker.getIndexTypeOfType(type, ts.IndexKind.String) !== undefined;
|
|
304
|
+
if (hasMappedStringIndex && type.getProperties().length === 0) {
|
|
305
|
+
return createScalarType({
|
|
306
|
+
name: "JSONObject",
|
|
307
|
+
scalarInfo: {
|
|
308
|
+
scalarName: "JSONObject",
|
|
309
|
+
typeName: "Record",
|
|
310
|
+
baseType: undefined,
|
|
311
|
+
isCustom: true,
|
|
312
|
+
only: null,
|
|
313
|
+
},
|
|
314
|
+
nullable: false,
|
|
315
|
+
});
|
|
316
|
+
}
|
|
209
317
|
// Check if typeNode references a known type (schema-defined type)
|
|
210
318
|
if (typeNode && ts.isTypeReferenceNode(typeNode)) {
|
|
211
319
|
const typeName = getTypeNameFromNode(typeNode);
|
|
@@ -216,7 +324,7 @@ function resolveFieldTypeInternal(type, typeNode, ctx) {
|
|
|
216
324
|
}
|
|
217
325
|
}
|
|
218
326
|
// Not a known type - treat as inline object
|
|
219
|
-
return tryExtractAsInlineObject(type, ctx);
|
|
327
|
+
return tryExtractAsInlineObject(type, ctx, null);
|
|
220
328
|
}
|
|
221
329
|
}
|
|
222
330
|
// Type alias expansion: type aliases not in knownTypeNames should be expanded as inline objects
|
|
@@ -233,8 +341,39 @@ function resolveFieldTypeInternal(type, typeNode, ctx) {
|
|
|
233
341
|
const isAnonymousObject = (type.flags & ts.TypeFlags.Object) !== 0 &&
|
|
234
342
|
(type.objectFlags & ts.ObjectFlags.Anonymous) !== 0;
|
|
235
343
|
if (isAnonymousObject) {
|
|
344
|
+
// Check if this type alias qualifies for transitive discovery.
|
|
345
|
+
// Type aliases to object literals used as union members should be
|
|
346
|
+
// discovered with their original alias name, not expanded as inline
|
|
347
|
+
// objects with auto-generated names. (#202)
|
|
348
|
+
if (ctx.discoveredTypes && !ctx.discoveredTypes.has(aliasName)) {
|
|
349
|
+
const resolvedAliasSymbol = resolveOriginalSymbol(type.aliasSymbol, checker);
|
|
350
|
+
const declarations = resolvedAliasSymbol.getDeclarations();
|
|
351
|
+
const decl = declarations?.[0];
|
|
352
|
+
if (decl && !decl.getSourceFile().isDeclarationFile) {
|
|
353
|
+
const properties = type.getProperties();
|
|
354
|
+
if (properties.length > 0) {
|
|
355
|
+
const declSourceFile = decl.getSourceFile();
|
|
356
|
+
const location = getSourceLocationFromNode(decl) ?? {
|
|
357
|
+
file: declSourceFile.fileName,
|
|
358
|
+
line: 1,
|
|
359
|
+
column: 1,
|
|
360
|
+
};
|
|
361
|
+
ctx.discoveredTypes.set(aliasName, {
|
|
362
|
+
name: aliasName,
|
|
363
|
+
tsType: type,
|
|
364
|
+
tsSymbol: resolvedAliasSymbol,
|
|
365
|
+
sourceFile: relative(process.cwd(), declSourceFile.fileName),
|
|
366
|
+
sourceLocation: location,
|
|
367
|
+
});
|
|
368
|
+
return createReferenceType({ name: aliasName, nullable: false });
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
if (ctx.discoveredTypes?.has(aliasName)) {
|
|
373
|
+
return createReferenceType({ name: aliasName, nullable: false });
|
|
374
|
+
}
|
|
236
375
|
// Not a known schema type and is an anonymous object - expand to generate Payload type
|
|
237
|
-
return tryExtractAsInlineObject(type, ctx);
|
|
376
|
+
return tryExtractAsInlineObject(type, ctx, null);
|
|
238
377
|
}
|
|
239
378
|
}
|
|
240
379
|
}
|
|
@@ -288,7 +427,7 @@ function resolveFieldTypeInternal(type, typeNode, ctx) {
|
|
|
288
427
|
return createReferenceType({ name: symbolName, nullable: false });
|
|
289
428
|
}
|
|
290
429
|
// Type from outside schema files - expand as inline object
|
|
291
|
-
return tryExtractAsInlineObject(type, ctx);
|
|
430
|
+
return tryExtractAsInlineObject(type, ctx, null);
|
|
292
431
|
}
|
|
293
432
|
// Check for scalar base type mapping
|
|
294
433
|
// This allows automatic mapping of base types (e.g., Date) to scalar types (e.g., DateTime)
|
|
@@ -330,21 +469,64 @@ function resolveFieldTypeInternal(type, typeNode, ctx) {
|
|
|
330
469
|
});
|
|
331
470
|
}
|
|
332
471
|
}
|
|
472
|
+
// Discover extractable named types for transitive type registration
|
|
473
|
+
if (ctx.discoveredTypes && !ctx.discoveredTypes.has(symbolName)) {
|
|
474
|
+
const declarations = resolvedSymbol.getDeclarations();
|
|
475
|
+
const decl = declarations?.[0];
|
|
476
|
+
if (decl && !decl.getSourceFile().isDeclarationFile) {
|
|
477
|
+
const properties = type.getProperties();
|
|
478
|
+
if (properties.length > 0) {
|
|
479
|
+
const declSourceFile = decl.getSourceFile();
|
|
480
|
+
const location = getSourceLocationFromNode(decl) ?? {
|
|
481
|
+
file: declSourceFile.fileName,
|
|
482
|
+
line: 1,
|
|
483
|
+
column: 1,
|
|
484
|
+
};
|
|
485
|
+
ctx.discoveredTypes.set(symbolName, {
|
|
486
|
+
name: symbolName,
|
|
487
|
+
tsType: type,
|
|
488
|
+
tsSymbol: resolvedSymbol,
|
|
489
|
+
sourceFile: relative(process.cwd(), declSourceFile.fileName),
|
|
490
|
+
sourceLocation: location,
|
|
491
|
+
});
|
|
492
|
+
}
|
|
493
|
+
}
|
|
494
|
+
}
|
|
333
495
|
// Unknown type - still return reference but it will likely cause validation error later
|
|
334
496
|
return createReferenceType({ name: symbolName, nullable: false });
|
|
335
497
|
}
|
|
336
498
|
}
|
|
337
499
|
return createReferenceType({ name: typeString, nullable: false });
|
|
338
500
|
}
|
|
339
|
-
function tryExtractAsInlineObject(type, ctx) {
|
|
501
|
+
function tryExtractAsInlineObject(type, ctx, hintName) {
|
|
340
502
|
const { visitedTypes, checker } = ctx;
|
|
341
503
|
if (visitedTypes.has(type)) {
|
|
342
|
-
//
|
|
343
|
-
const
|
|
344
|
-
|
|
504
|
+
// Prefer aliasSymbol (type alias name) over type.symbol (which may be __type for anonymous objects)
|
|
505
|
+
const candidateName = type.aliasSymbol?.getName() ?? type.symbol?.getName();
|
|
506
|
+
if (candidateName &&
|
|
507
|
+
!isInternalTypeSymbol(candidateName) &&
|
|
508
|
+
(ctx.knownTypeNames.has(candidateName) ||
|
|
509
|
+
ctx.discoveredTypes?.has(candidateName))) {
|
|
510
|
+
// Valid reference target exists in the schema
|
|
511
|
+
return createReferenceType({ name: candidateName, nullable: false });
|
|
512
|
+
}
|
|
513
|
+
// No valid reference target — emit warning and skip field
|
|
514
|
+
ctx.diagnostics.push({
|
|
515
|
+
code: "CYCLE_DETECTED",
|
|
516
|
+
message: "Cycle detected in type resolution; field will be skipped",
|
|
517
|
+
severity: "warning",
|
|
518
|
+
});
|
|
519
|
+
return createNeverType();
|
|
345
520
|
}
|
|
346
521
|
visitedTypes.add(type);
|
|
347
522
|
const inlineProperties = extractInlineObjectPropertiesShared(type, checker, (propType) => resolveFieldTypeInternal(propType, undefined, ctx));
|
|
523
|
+
// Allow this type to be visited again in sibling union members.
|
|
524
|
+
// Cycle detection still works because real cycles are caught during the
|
|
525
|
+
// recursive extractInlineObjectPropertiesShared call above (while the
|
|
526
|
+
// type is still in visitedTypes). Removing it afterward prevents
|
|
527
|
+
// false-positive cycle detection when TypeScript shares the same type
|
|
528
|
+
// object across multiple union members (common with generic .d.ts types).
|
|
529
|
+
visitedTypes.delete(type);
|
|
348
530
|
// Extract type-level TSDoc from the alias symbol if present (Requirement 7.2)
|
|
349
531
|
// Only extract from user-defined types, not built-in TypeScript utility types
|
|
350
532
|
let description = null;
|
|
@@ -365,6 +547,7 @@ function tryExtractAsInlineObject(type, ctx) {
|
|
|
365
547
|
properties: inlineProperties,
|
|
366
548
|
description,
|
|
367
549
|
deprecated,
|
|
550
|
+
hintName,
|
|
368
551
|
});
|
|
369
552
|
}
|
|
370
553
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-type-resolver.js","sourceRoot":"","sources":["../../../src/type-extractor/extractor/field-type-resolver.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"field-type-resolver.js","sourceRoot":"","sources":["../../../src/type-extractor/extractor/field-type-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,6 +31,7 @@ export interface ExtractionResult {
|
|
|
31
31
|
readonly diagnostics: ReadonlyArray<Diagnostic>;
|
|
32
32
|
readonly detectedScalarNames: ReadonlyArray<string>;
|
|
33
33
|
readonly detectedScalars: ReadonlyArray<ScalarMetadataInfo>;
|
|
34
|
+
readonly discoveredTypeNames: ReadonlySet<string>;
|
|
34
35
|
}
|
|
35
36
|
export declare function extractTypesFromProgram(program: ts.Program, sourceFiles: ReadonlyArray<string>, options: ExtractionOptions): ExtractionResult;
|
|
36
37
|
//# sourceMappingURL=type-extractor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-extractor.d.ts","sourceRoot":"","sources":["../../../src/type-extractor/extractor/type-extractor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"type-extractor.d.ts","sourceRoot":"","sources":["../../../src/type-extractor/extractor/type-extractor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,YAAY,CAAC;AA8C5B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,KAAK,EACV,0BAA0B,EAE3B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EASL,KAAK,UAAU,EAEf,KAAK,iBAAiB,EAOvB,MAAM,mBAAmB,CAAC;AAO3B;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,iDAAiD;IACjD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,oDAAoD;IACpD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,uBAAuB;IACvB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI,CAAC;CAC1C;AAED,MAAM,WAAW,iBAAiB;IAChC,0EAA0E;IAC1E,QAAQ,CAAC,kBAAkB,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAC9D,yEAAyE;IACzE,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7C,mEAAmE;IACnE,QAAQ,CAAC,gBAAgB,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IAC1D,iFAAiF;IACjF,QAAQ,CAAC,0BAA0B,EAAE,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpE,+EAA+E;IAC/E,QAAQ,CAAC,kBAAkB,EAAE,0BAA0B,GAAG,IAAI,CAAC;CAChE;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IACjD,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAChD,QAAQ,CAAC,mBAAmB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACpD,QAAQ,CAAC,eAAe,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;IAC5D,QAAQ,CAAC,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACnD;AAktCD,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,EAAE,CAAC,OAAO,EACnB,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,EAClC,OAAO,EAAE,iBAAiB,GACzB,gBAAgB,CAgYlB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { resolve } from "node:path";
|
|
2
2
|
import ts from "typescript";
|
|
3
|
-
import { isInternalTypeSymbol } from "../../shared/constants.js";
|
|
3
|
+
import { isBuiltInScalar, isInternalTypeSymbol, } from "../../shared/constants.js";
|
|
4
4
|
import { detectDefaultValueMetadata } from "../../shared/default-value-detector.js";
|
|
5
5
|
import { detectDirectiveMetadata, hasDirectiveMetadata, unwrapDirectiveType, } from "../../shared/directive-detector.js";
|
|
6
6
|
import { detectIgnoreFieldsMetadata } from "../../shared/ignore-fields-detector.js";
|
|
@@ -12,8 +12,8 @@ import { detectScalarMetadata } from "../../shared/metadata-detector.js";
|
|
|
12
12
|
import { getSourceLocationFromNode, } from "../../shared/source-location.js";
|
|
13
13
|
import { extractTsDocFromSymbol, extractTsDocInfo, } from "../../shared/tsdoc-parser.js";
|
|
14
14
|
import { extractPropertySymbols, filterNonNullTypeNodes, findEnumParentSymbol, findNonNullTypeNode, getNonNullableTypes, getTypeNameFromNode, hasUndefinedInType, isAnonymousObjectType, isBooleanUnion, isExported, isNullableUnion, isNullOrUndefined, shouldTreatIntersectionAsInline, } from "../../shared/typescript-utils.js";
|
|
15
|
-
import { createArrayType, createInlineObjectType,
|
|
16
|
-
import { resolveFieldType } from "./field-type-resolver.js";
|
|
15
|
+
import { createArrayType, createInlineObjectType, createNumericLiteralType, createPrimitiveType, createReferenceType, createScalarType, createStringLiteralType, createUnionType, } from "../types/index.js";
|
|
16
|
+
import { resolveFieldType, } from "./field-type-resolver.js";
|
|
17
17
|
function isDefaultExport(node, sourceFile) {
|
|
18
18
|
let hasDefaultExport = false;
|
|
19
19
|
const nodeName = node.name?.getText(sourceFile);
|
|
@@ -50,6 +50,7 @@ function tryExtractAsInlineObject(type, ctx) {
|
|
|
50
50
|
properties: inlineProperties,
|
|
51
51
|
description: null,
|
|
52
52
|
deprecated: null,
|
|
53
|
+
hintName: null,
|
|
53
54
|
}),
|
|
54
55
|
};
|
|
55
56
|
}
|
|
@@ -120,6 +121,7 @@ function convertTsTypeToReference(type, ctx, typeNode) {
|
|
|
120
121
|
tsType: createUnionType({
|
|
121
122
|
members: memberResults.map((r) => r.tsType),
|
|
122
123
|
nullable,
|
|
124
|
+
aliasName: type.aliasSymbol?.getName() ?? null,
|
|
123
125
|
}),
|
|
124
126
|
};
|
|
125
127
|
}
|
|
@@ -159,12 +161,12 @@ function convertTsTypeToReference(type, ctx, typeNode) {
|
|
|
159
161
|
}
|
|
160
162
|
if (type.flags & ts.TypeFlags.StringLiteral) {
|
|
161
163
|
return {
|
|
162
|
-
tsType:
|
|
164
|
+
tsType: createStringLiteralType(typeString.replace(/"/g, "")),
|
|
163
165
|
};
|
|
164
166
|
}
|
|
165
167
|
if (type.flags & ts.TypeFlags.NumberLiteral) {
|
|
166
168
|
return {
|
|
167
|
-
tsType:
|
|
169
|
+
tsType: createNumericLiteralType(typeString),
|
|
168
170
|
};
|
|
169
171
|
}
|
|
170
172
|
// Handle intersection types that should be treated as inline objects
|
|
@@ -256,7 +258,7 @@ function collectAllFieldNames(type, checker) {
|
|
|
256
258
|
return fieldNames;
|
|
257
259
|
}
|
|
258
260
|
function extractFieldsFromType(params) {
|
|
259
|
-
const { type, checker, globalTypeMappings, knownTypeNames, knownTypeSymbols, underlyingSymbolToTypeName, sourceFiles, scalarMappingTable, scalarMappingContext, ignoreFields, } = params;
|
|
261
|
+
const { type, checker, globalTypeMappings, knownTypeNames, knownTypeSymbols, underlyingSymbolToTypeName, sourceFiles, scalarMappingTable, scalarMappingContext, ignoreFields, discoveredTypes, } = params;
|
|
260
262
|
const fields = [];
|
|
261
263
|
const diagnostics = [];
|
|
262
264
|
const properties = extractPropertySymbols(type, checker);
|
|
@@ -317,6 +319,7 @@ function extractFieldsFromType(params) {
|
|
|
317
319
|
ts.isPropertyDeclaration(declaration))) {
|
|
318
320
|
propTypeNode = declaration.type;
|
|
319
321
|
}
|
|
322
|
+
const fieldDiagnostics = [];
|
|
320
323
|
const resolvedType = resolveFieldType(actualPropType, propTypeNode, {
|
|
321
324
|
checker,
|
|
322
325
|
knownTypeNames,
|
|
@@ -326,7 +329,21 @@ function extractFieldsFromType(params) {
|
|
|
326
329
|
sourceFiles,
|
|
327
330
|
scalarMappingTable,
|
|
328
331
|
scalarMappingContext,
|
|
332
|
+
discoveredTypes,
|
|
333
|
+
diagnostics: fieldDiagnostics,
|
|
329
334
|
});
|
|
335
|
+
for (const d of fieldDiagnostics) {
|
|
336
|
+
diagnostics.push({
|
|
337
|
+
code: d.code,
|
|
338
|
+
message: `Field '${propName}': ${d.message}`,
|
|
339
|
+
severity: d.severity,
|
|
340
|
+
location: getSourceLocationFromNode(declaration),
|
|
341
|
+
});
|
|
342
|
+
}
|
|
343
|
+
// Skip fields with never type — they have no GraphQL representation
|
|
344
|
+
if (resolvedType.kind === "never") {
|
|
345
|
+
continue;
|
|
346
|
+
}
|
|
330
347
|
// Preserve nullability from original WithDirectives type
|
|
331
348
|
const tsType = directiveNullable && !resolvedType.nullable
|
|
332
349
|
? { ...resolvedType, nullable: true }
|
|
@@ -551,7 +568,7 @@ function createGenericTypeDiagnostic(declaration, exportedName, location) {
|
|
|
551
568
|
return null;
|
|
552
569
|
}
|
|
553
570
|
function processReexportedSymbol(params) {
|
|
554
|
-
const { exportedName, resolvedSymbol, type, location, filePath, checker, globalTypeMappings, knownTypeNames, knownTypeSymbols, underlyingSymbolToTypeName, scannedSourceFiles, scalarMappingTable, scalarMappingContext, } = params;
|
|
571
|
+
const { exportedName, resolvedSymbol, type, location, filePath, checker, globalTypeMappings, knownTypeNames, knownTypeSymbols, underlyingSymbolToTypeName, scannedSourceFiles, scalarMappingTable, scalarMappingContext, discoveredTypes, } = params;
|
|
555
572
|
const diagnostics = [];
|
|
556
573
|
const scalarMetadataResult = detectScalarMetadata(type, checker);
|
|
557
574
|
if (scalarMetadataResult.scalarName && !scalarMetadataResult.isPrimitive) {
|
|
@@ -659,6 +676,7 @@ function processReexportedSymbol(params) {
|
|
|
659
676
|
scalarMappingTable,
|
|
660
677
|
scalarMappingContext,
|
|
661
678
|
ignoreFields,
|
|
679
|
+
discoveredTypes,
|
|
662
680
|
});
|
|
663
681
|
diagnostics.push(...fieldResult.diagnostics);
|
|
664
682
|
return {
|
|
@@ -676,7 +694,7 @@ function processReexportedSymbol(params) {
|
|
|
676
694
|
skip: false,
|
|
677
695
|
};
|
|
678
696
|
}
|
|
679
|
-
function processExportDeclaration(node, sourceFile, filePath, checker, globalTypeMappings, knownTypeNames, knownTypeSymbols, underlyingSymbolToTypeName, scannedSourceFiles, scalarMappingTable) {
|
|
697
|
+
function processExportDeclaration(node, sourceFile, filePath, checker, globalTypeMappings, knownTypeNames, knownTypeSymbols, underlyingSymbolToTypeName, scannedSourceFiles, scalarMappingTable, discoveredTypes) {
|
|
680
698
|
const types = [];
|
|
681
699
|
const diagnostics = [];
|
|
682
700
|
const detectedScalarNames = [];
|
|
@@ -754,6 +772,7 @@ function processExportDeclaration(node, sourceFile, filePath, checker, globalTyp
|
|
|
754
772
|
scannedSourceFiles,
|
|
755
773
|
scalarMappingTable,
|
|
756
774
|
scalarMappingContext: exportedName.endsWith("Input") ? "input" : "output",
|
|
775
|
+
discoveredTypes,
|
|
757
776
|
});
|
|
758
777
|
if (result.skip)
|
|
759
778
|
continue;
|
|
@@ -886,6 +905,7 @@ export function extractTypesFromProgram(program, sourceFiles, options) {
|
|
|
886
905
|
const diagnostics = [];
|
|
887
906
|
const detectedScalarNames = new Set();
|
|
888
907
|
const detectedScalars = [];
|
|
908
|
+
const discoveredTypes = new Map();
|
|
889
909
|
const { globalTypeMappings, knownTypeNames, knownTypeSymbols, underlyingSymbolToTypeName, scalarMappingTable, } = options;
|
|
890
910
|
const scannedSourceFilesSet = new Set(sourceFiles);
|
|
891
911
|
for (const filePath of sourceFiles) {
|
|
@@ -1084,6 +1104,7 @@ export function extractTypesFromProgram(program, sourceFiles, options) {
|
|
|
1084
1104
|
? "input"
|
|
1085
1105
|
: "output",
|
|
1086
1106
|
ignoreFields,
|
|
1107
|
+
discoveredTypes,
|
|
1087
1108
|
});
|
|
1088
1109
|
const fields = fieldResult.fields;
|
|
1089
1110
|
diagnostics.push(...fieldResult.diagnostics);
|
|
@@ -1127,7 +1148,7 @@ export function extractTypesFromProgram(program, sourceFiles, options) {
|
|
|
1127
1148
|
types.push(typeInfo);
|
|
1128
1149
|
}
|
|
1129
1150
|
if (ts.isExportDeclaration(node)) {
|
|
1130
|
-
const result = processExportDeclaration(node, sourceFile, filePath, checker, globalTypeMappings, knownTypeNames, knownTypeSymbols, underlyingSymbolToTypeName, scannedSourceFilesSet, scalarMappingTable);
|
|
1151
|
+
const result = processExportDeclaration(node, sourceFile, filePath, checker, globalTypeMappings, knownTypeNames, knownTypeSymbols, underlyingSymbolToTypeName, scannedSourceFilesSet, scalarMappingTable, discoveredTypes);
|
|
1131
1152
|
types.push(...result.types);
|
|
1132
1153
|
diagnostics.push(...result.diagnostics);
|
|
1133
1154
|
for (const scalarName of result.detectedScalarNames) {
|
|
@@ -1137,11 +1158,81 @@ export function extractTypesFromProgram(program, sourceFiles, options) {
|
|
|
1137
1158
|
}
|
|
1138
1159
|
});
|
|
1139
1160
|
}
|
|
1161
|
+
// Process transitively discovered types
|
|
1162
|
+
const processedDiscovered = new Set();
|
|
1163
|
+
while (discoveredTypes.size > processedDiscovered.size) {
|
|
1164
|
+
for (const [name, entry] of discoveredTypes) {
|
|
1165
|
+
if (processedDiscovered.has(name))
|
|
1166
|
+
continue;
|
|
1167
|
+
processedDiscovered.add(name);
|
|
1168
|
+
if (knownTypeNames.has(name))
|
|
1169
|
+
continue;
|
|
1170
|
+
const { fields } = extractFieldsFromType({
|
|
1171
|
+
type: entry.tsType,
|
|
1172
|
+
checker,
|
|
1173
|
+
globalTypeMappings,
|
|
1174
|
+
knownTypeNames,
|
|
1175
|
+
knownTypeSymbols,
|
|
1176
|
+
underlyingSymbolToTypeName,
|
|
1177
|
+
sourceFiles: scannedSourceFilesSet,
|
|
1178
|
+
scalarMappingTable,
|
|
1179
|
+
scalarMappingContext: "output",
|
|
1180
|
+
ignoreFields: null,
|
|
1181
|
+
discoveredTypes,
|
|
1182
|
+
});
|
|
1183
|
+
if (fields.length === 0)
|
|
1184
|
+
continue;
|
|
1185
|
+
types.push({
|
|
1186
|
+
metadata: {
|
|
1187
|
+
name,
|
|
1188
|
+
kind: "object",
|
|
1189
|
+
sourceFile: entry.sourceFile,
|
|
1190
|
+
sourceLocation: entry.sourceLocation,
|
|
1191
|
+
exportKind: "named",
|
|
1192
|
+
description: null,
|
|
1193
|
+
deprecated: null,
|
|
1194
|
+
directives: null,
|
|
1195
|
+
},
|
|
1196
|
+
fields,
|
|
1197
|
+
enumMembers: null,
|
|
1198
|
+
unionMembers: null,
|
|
1199
|
+
implementedInterfaces: null,
|
|
1200
|
+
inlineObjectMembers: null,
|
|
1201
|
+
});
|
|
1202
|
+
}
|
|
1203
|
+
}
|
|
1204
|
+
// Collect scalar names from field types (e.g., unknown → Unknown scalar)
|
|
1205
|
+
for (const typeInfo of types) {
|
|
1206
|
+
for (const field of typeInfo.fields) {
|
|
1207
|
+
collectScalarNamesFromType(field.tsType, detectedScalarNames);
|
|
1208
|
+
}
|
|
1209
|
+
}
|
|
1140
1210
|
return {
|
|
1141
1211
|
types,
|
|
1142
1212
|
diagnostics,
|
|
1143
1213
|
detectedScalarNames: [...detectedScalarNames],
|
|
1144
1214
|
detectedScalars,
|
|
1215
|
+
discoveredTypeNames: new Set(discoveredTypes.keys()),
|
|
1145
1216
|
};
|
|
1146
1217
|
}
|
|
1218
|
+
function collectScalarNamesFromType(tsType, scalarNames) {
|
|
1219
|
+
if (tsType.kind === "scalar" &&
|
|
1220
|
+
tsType.scalarInfo?.isCustom &&
|
|
1221
|
+
!isBuiltInScalar(tsType.scalarInfo.scalarName)) {
|
|
1222
|
+
scalarNames.add(tsType.scalarInfo.scalarName);
|
|
1223
|
+
}
|
|
1224
|
+
if (tsType.elementType) {
|
|
1225
|
+
collectScalarNamesFromType(tsType.elementType, scalarNames);
|
|
1226
|
+
}
|
|
1227
|
+
if (tsType.members) {
|
|
1228
|
+
for (const member of tsType.members) {
|
|
1229
|
+
collectScalarNamesFromType(member, scalarNames);
|
|
1230
|
+
}
|
|
1231
|
+
}
|
|
1232
|
+
if (tsType.inlineObjectProperties) {
|
|
1233
|
+
for (const prop of tsType.inlineObjectProperties) {
|
|
1234
|
+
collectScalarNamesFromType(prop.tsType, scalarNames);
|
|
1235
|
+
}
|
|
1236
|
+
}
|
|
1237
|
+
}
|
|
1147
1238
|
//# sourceMappingURL=type-extractor.js.map
|