@tsoa-next/cli 8.0.3-dev.50.9fdb94a0 → 8.0.3-dev.51.464a0c70

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.
@@ -73,11 +73,15 @@ class ParameterGenerator {
73
73
  method;
74
74
  path;
75
75
  current;
76
- constructor(parameter, method, path, current) {
76
+ context;
77
+ resolvedParameterType;
78
+ constructor(parameter, method, path, current, context = {}, resolvedParameterType) {
77
79
  this.parameter = parameter;
78
80
  this.method = method;
79
81
  this.path = path;
80
82
  this.current = current;
83
+ this.context = context;
84
+ this.resolvedParameterType = resolvedParameterType;
81
85
  }
82
86
  Generate() {
83
87
  const decoratorName = (0, decoratorUtils_1.getNodeFirstDecoratorName)(this.parameter, (_identifier, canonicalName) => this.supportParameterDecorator(canonicalName), this.current.typeChecker);
@@ -184,13 +188,13 @@ class ParameterGenerator {
184
188
  const isNumberLiteralType = (tsType) => {
185
189
  return (tsType.getFlags() & ts.TypeFlags.NumberLiteral) !== 0;
186
190
  };
187
- const headers = (0, headerTypeHelpers_1.getHeaderType)(typeNode.typeArguments, 2, this.current);
191
+ const headers = (0, headerTypeHelpers_1.getHeaderType)(typeNode.typeArguments, 2, this.current, this.context);
188
192
  return statusArgumentTypes.map(statusArgumentType => {
189
193
  if (!isNumberLiteralType(statusArgumentType)) {
190
194
  throw new exceptions_1.GenerateMetadataError('@Res() requires the type to be TsoaResponse<HTTPStatusCode, ResBody>', parameter);
191
195
  }
192
196
  const status = String(statusArgumentType.value);
193
- const type = new typeResolver_1.TypeResolver(bodyArgument, this.current, typeNode).resolve();
197
+ const type = new typeResolver_1.TypeResolver(bodyArgument, this.current, typeNode, this.context).resolve();
194
198
  const { examples, exampleLabels } = this.getParameterExample(parameter, parameterName);
195
199
  return {
196
200
  description: this.getParameterDescription(parameter) || '',
@@ -378,7 +382,7 @@ class ParameterGenerator {
378
382
  try {
379
383
  const actualType = this.current.typeChecker.getTypeAtLocation(typeNode);
380
384
  const typeNodeFromType = this.current.typeChecker.typeToTypeNode(actualType, undefined, ts.NodeBuilderFlags.NoTruncation);
381
- const resolvedType = new typeResolver_1.TypeResolver(typeNodeFromType, this.current, parameter).resolve();
385
+ const resolvedType = new typeResolver_1.TypeResolver(typeNodeFromType, this.current, parameter, this.context).resolve();
382
386
  return isQueriesType(resolvedType) ? resolvedType : undefined;
383
387
  }
384
388
  catch (error) {
@@ -568,7 +572,7 @@ class ParameterGenerator {
568
572
  return false;
569
573
  }
570
574
  getValidatedType(parameter) {
571
- return new typeResolver_1.TypeResolver(this.getParameterTypeNode(parameter), this.current, parameter).resolve();
575
+ return new typeResolver_1.TypeResolver(this.getParameterTypeNode(parameter), this.current, parameter, this.context, this.resolvedParameterType).resolve();
572
576
  }
573
577
  getQueryParameterIsHidden(parameter) {
574
578
  const hiddenDecorators = (0, decoratorUtils_1.getDecorators)(parameter, (_identifier, canonicalName) => canonicalName === 'Hidden', this.current.typeChecker);
@@ -597,6 +601,9 @@ class ParameterGenerator {
597
601
  }
598
602
  }
599
603
  getParameterTypeNode(parameter) {
604
+ if (this.resolvedParameterType) {
605
+ return this.current.typeChecker.typeToTypeNode(this.resolvedParameterType, undefined, ts.NodeBuilderFlags.NoTruncation);
606
+ }
600
607
  if (parameter.type) {
601
608
  return parameter.type;
602
609
  }
@@ -1 +1 @@
1
- {"version":3,"file":"parameterGenerator.js","sourceRoot":"","sources":["../../src/metadataGeneration/parameterGenerator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parameterGenerator.js","sourceRoot":"","sources":["../../src/metadataGeneration/parameterGenerator.ts"],"names":[],"mappings":"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"}
@@ -2,10 +2,11 @@ import { Tsoa } from '@tsoa-next/runtime';
2
2
  import * as ts from 'typescript';
3
3
  import { MetadataGenerator } from './metadataGenerator';
4
4
  type UsableDeclaration = ts.InterfaceDeclaration | ts.ClassDeclaration | ts.PropertySignature | ts.TypeAliasDeclaration | ts.EnumMember;
5
- interface Context {
5
+ export interface Context {
6
6
  [name: string]: {
7
7
  type: ts.TypeNode;
8
8
  name: string;
9
+ resolvedType?: ts.Type;
9
10
  };
10
11
  }
11
12
  export declare class TypeResolver {
@@ -17,6 +18,7 @@ export declare class TypeResolver {
17
18
  constructor(typeNode: ts.TypeNode, current: MetadataGenerator, parentNode?: ts.Node | undefined, context?: Context, referencer?: ts.Type | undefined);
18
19
  static clearCache(): void;
19
20
  resolve(): Tsoa.Type;
21
+ private getRecoverableTypeReferenceNode;
20
22
  private resolveNonReferenceTypeNode;
21
23
  private resolveArrayTypeNode;
22
24
  private resolveRestTypeNode;
@@ -58,6 +60,8 @@ export declare class TypeResolver {
58
60
  private resolveIndexedAccessTypeNode;
59
61
  private resolveIndexedAccessKeywordType;
60
62
  private resolveIndexedAccessLiteralType;
63
+ private resolveContextualIndexedAccessObjectType;
64
+ private getContextualIndexedAccessObjectTypeNode;
61
65
  private symbolHasTypeDeclaration;
62
66
  private resolveKeyedIndexedAccessType;
63
67
  private resolveTypeReferenceNode;
@@ -69,6 +73,10 @@ export declare class TypeResolver {
69
73
  private entityNameComesFromModule;
70
74
  private getIoTsUtilityTypeFromSymbol;
71
75
  private symbolComesFromModule;
76
+ private symbolDeclarationsComeFromModule;
77
+ private declarationComesFromModule;
78
+ private getContainingImportModuleSpecifier;
79
+ private aliasedSymbolComesFromModule;
72
80
  private getLiteralValue;
73
81
  private getDesignatedModels;
74
82
  private hasFlag;
@@ -121,6 +129,13 @@ export declare class TypeResolver {
121
129
  private getSymbolAtLocation;
122
130
  private getModelAdditionalProperties;
123
131
  private typeArgumentsToContext;
132
+ private getTypeParametersForTargetEntity;
133
+ private resolveContextualTypeArgument;
134
+ private getForwardReferencedContextType;
135
+ private getResolvedTypeForContextTypeArgument;
136
+ private getReferencerTypeArgument;
137
+ private getPromisedTypeOfReferencer;
138
+ private normalizeTypeNodeFromBuilder;
124
139
  private getReferenceAliasProperties;
125
140
  private appendInheritedProperties;
126
141
  private getInheritedReferenceType;
@@ -53,8 +53,26 @@ const localReferenceTypeCache = {};
53
53
  const inProgressTypes = {};
54
54
  const escapedDoubleQuote = String.raw `\"`;
55
55
  const backslash = '\\';
56
+ const symbolModuleOriginCache = new WeakMap();
57
+ const ioTsUtilityTypeCache = new WeakMap();
56
58
  const hasInitializer = (declaration) => 'initializer' in declaration && declaration.initializer !== undefined;
57
59
  const objectHasOwn = Object.hasOwn;
60
+ const getSymbolModuleOriginCache = (typeChecker) => {
61
+ let cache = symbolModuleOriginCache.get(typeChecker);
62
+ if (!cache) {
63
+ cache = new WeakMap();
64
+ symbolModuleOriginCache.set(typeChecker, cache);
65
+ }
66
+ return cache;
67
+ };
68
+ const getIoTsUtilityTypeCache = (typeChecker) => {
69
+ let cache = ioTsUtilityTypeCache.get(typeChecker);
70
+ if (!cache) {
71
+ cache = new WeakMap();
72
+ ioTsUtilityTypeCache.set(typeChecker, cache);
73
+ }
74
+ return cache;
75
+ };
58
76
  const getSyntheticOrigin = (symbol) => {
59
77
  const symbolWithLinks = symbol;
60
78
  return symbolWithLinks.links?.syntheticOrigin;
@@ -175,6 +193,10 @@ class TypeResolver {
175
193
  });
176
194
  }
177
195
  resolve() {
196
+ const recoverableTypeReference = this.getRecoverableTypeReferenceNode();
197
+ if (recoverableTypeReference) {
198
+ return this.resolveTypeReferenceNode(recoverableTypeReference, this.current, this.context, this.parentNode);
199
+ }
178
200
  const parentJsDocTagNames = this.parentNode ? (0, jsDocUtils_1.getJSDocTagNames)(this.parentNode) : undefined;
179
201
  const primitiveType = new primitiveTransformer_1.PrimitiveTransformer().transform(this.current.defaultNumberType, this.typeNode, parentJsDocTagNames);
180
202
  if (primitiveType) {
@@ -187,6 +209,13 @@ class TypeResolver {
187
209
  (0, flowUtils_1.throwUnless)(ts.isTypeReferenceNode(this.typeNode), new exceptions_1.GenerateMetadataError(`Unknown type: ${ts.SyntaxKind[this.typeNode.kind]}`, this.typeNode));
188
210
  return this.resolveTypeReferenceNode(this.typeNode, this.current, this.context, this.parentNode);
189
211
  }
212
+ getRecoverableTypeReferenceNode() {
213
+ if (!ts.isIdentifier(this.typeNode) && !ts.isQualifiedName(this.typeNode)) {
214
+ return undefined;
215
+ }
216
+ const parent = this.typeNode.parent;
217
+ return parent && ts.isTypeReferenceNode(parent) && parent.typeName === this.typeNode ? parent : undefined;
218
+ }
190
219
  resolveNonReferenceTypeNode() {
191
220
  return (this.resolveArrayTypeNode() ??
192
221
  this.resolveRestTypeNode() ??
@@ -505,7 +534,7 @@ class TypeResolver {
505
534
  if (!contextualType) {
506
535
  return undefined;
507
536
  }
508
- const subResult = new TypeResolver(contextualType.type, current, parentNode, context).resolve();
537
+ const subResult = new TypeResolver(contextualType.type, current, parentNode, context, contextualType.resolvedType).resolve();
509
538
  if (subResult.dataType === 'any') {
510
539
  return this.createStringAndNumberUnion();
511
540
  }
@@ -617,14 +646,15 @@ class TypeResolver {
617
646
  }
618
647
  resolveIndexedAccessLiteralType(typeNode, typeChecker, current, context, objectType, indexType) {
619
648
  const propertyName = ts.isStringLiteral(indexType.literal) || ts.isNumericLiteral(indexType.literal) ? indexType.literal.text : indexType.literal.getText();
620
- const symbol = typeChecker.getPropertyOfType(typeChecker.getTypeFromTypeNode(objectType), propertyName);
621
- (0, flowUtils_1.throwUnless)(symbol, new exceptions_1.GenerateMetadataError(`Could not determine the keys on ${typeChecker.typeToString(typeChecker.getTypeFromTypeNode(objectType))}`, typeNode));
649
+ const { type: resolvedObjectType, typeNode: resolvedObjectTypeNode } = this.resolveContextualIndexedAccessObjectType(objectType, typeChecker, context);
650
+ const symbol = typeChecker.getPropertyOfType(resolvedObjectType, propertyName);
651
+ (0, flowUtils_1.throwUnless)(symbol, new exceptions_1.GenerateMetadataError(`Could not determine the keys on ${typeChecker.typeToString(resolvedObjectType)}`, typeNode));
622
652
  if (this.symbolHasTypeDeclaration(symbol.valueDeclaration)) {
623
653
  return new TypeResolver(symbol.valueDeclaration.type, current, typeNode, context).resolve();
624
654
  }
625
- const declarationType = typeChecker.getTypeOfSymbolAtLocation(symbol, objectType);
655
+ const declarationType = typeChecker.getTypeOfSymbolAtLocation(symbol, resolvedObjectTypeNode);
626
656
  try {
627
- return new TypeResolver(typeChecker.typeToTypeNode(declarationType, objectType, ts.NodeBuilderFlags.NoTruncation), current, typeNode, context).resolve();
657
+ return new TypeResolver(typeChecker.typeToTypeNode(declarationType, resolvedObjectTypeNode, ts.NodeBuilderFlags.NoTruncation), current, typeNode, context).resolve();
628
658
  }
629
659
  catch {
630
660
  const typeNodeForError = typeChecker.typeToTypeNode(declarationType, undefined, ts.NodeBuilderFlags.NoTruncation);
@@ -632,6 +662,24 @@ class TypeResolver {
632
662
  throw new exceptions_1.GenerateMetadataError(`Could not determine the keys on ${typeName}`, typeNode);
633
663
  }
634
664
  }
665
+ resolveContextualIndexedAccessObjectType(objectType, typeChecker, context) {
666
+ const contextualTypeNode = this.getContextualIndexedAccessObjectTypeNode(objectType, context);
667
+ const resolvedTypeNode = contextualTypeNode ?? objectType;
668
+ const contextualType = contextualTypeNode && ts.isTypeReferenceNode(objectType) && ts.isIdentifier(objectType.typeName) ? context[objectType.typeName.text] : undefined;
669
+ return {
670
+ type: contextualType?.resolvedType ?? typeChecker.getTypeFromTypeNode(resolvedTypeNode),
671
+ typeNode: resolvedTypeNode,
672
+ };
673
+ }
674
+ getContextualIndexedAccessObjectTypeNode(objectType, context) {
675
+ if (ts.isParenthesizedTypeNode(objectType)) {
676
+ return this.getContextualIndexedAccessObjectTypeNode(objectType.type, context);
677
+ }
678
+ if (!ts.isTypeReferenceNode(objectType) || !ts.isIdentifier(objectType.typeName)) {
679
+ return undefined;
680
+ }
681
+ return context[objectType.typeName.text]?.type;
682
+ }
635
683
  symbolHasTypeDeclaration(node) {
636
684
  return node !== undefined && objectHasOwn(node, 'type') && node.type !== undefined;
637
685
  }
@@ -691,13 +739,13 @@ class TypeResolver {
691
739
  const decodedSymbol = current.typeChecker.getPropertyOfType(codecType, '_A');
692
740
  if (decodedSymbol) {
693
741
  const decodedType = current.typeChecker.getTypeOfSymbolAtLocation(decodedSymbol, codecTypeArgument);
694
- const decodedNode = current.typeChecker.typeToTypeNode(decodedType, undefined, ts.NodeBuilderFlags.InTypeAlias | ts.NodeBuilderFlags.NoTruncation);
742
+ const decodedNode = this.normalizeTypeNodeFromBuilder(current.typeChecker.typeToTypeNode(decodedType, undefined, ts.NodeBuilderFlags.InTypeAlias | ts.NodeBuilderFlags.NoTruncation));
695
743
  if (decodedNode) {
696
744
  return new TypeResolver(decodedNode, current, parentNode, context, decodedType).resolve();
697
745
  }
698
746
  }
699
747
  const resolvedType = current.typeChecker.getTypeFromTypeNode(typeNode);
700
- const resolvedNode = current.typeChecker.typeToTypeNode(resolvedType, undefined, ts.NodeBuilderFlags.InTypeAlias | ts.NodeBuilderFlags.NoTruncation);
748
+ const resolvedNode = this.normalizeTypeNodeFromBuilder(current.typeChecker.typeToTypeNode(resolvedType, undefined, ts.NodeBuilderFlags.InTypeAlias | ts.NodeBuilderFlags.NoTruncation));
701
749
  if (resolvedNode && !ts.isTypeReferenceNode(resolvedNode)) {
702
750
  return new TypeResolver(resolvedNode, current, parentNode, context, resolvedType).resolve();
703
751
  }
@@ -720,14 +768,15 @@ class TypeResolver {
720
768
  return undefined;
721
769
  case 'Promise':
722
770
  if (typeArguments?.length === 1) {
723
- return new TypeResolver(typeArguments[0], current, parentNode, context).resolve();
771
+ const promisedType = this.getPromisedTypeOfReferencer(current.typeChecker);
772
+ return new TypeResolver(typeArguments[0], current, parentNode, context, promisedType).resolve();
724
773
  }
725
774
  return undefined;
726
775
  case 'String':
727
776
  return { dataType: 'string' };
728
777
  default:
729
778
  if (context[typeName]) {
730
- return new TypeResolver(context[typeName].type, current, parentNode, context).resolve();
779
+ return new TypeResolver(context[typeName].type, current, parentNode, context, context[typeName].resolvedType).resolve();
731
780
  }
732
781
  return undefined;
733
782
  }
@@ -759,46 +808,73 @@ class TypeResolver {
759
808
  if (!symbol || visited.has(symbol)) {
760
809
  return undefined;
761
810
  }
811
+ const cache = getIoTsUtilityTypeCache(typeChecker);
812
+ if (cache.has(symbol)) {
813
+ const cachedType = cache.get(symbol);
814
+ return cachedType || undefined;
815
+ }
762
816
  visited.add(symbol);
763
817
  if ((symbol.flags & ts.SymbolFlags.Alias) !== 0) {
764
818
  const aliasedSymbol = typeChecker.getAliasedSymbol(symbol);
765
819
  const aliasedType = this.getIoTsUtilityTypeFromSymbol(aliasedSymbol, typeChecker, visited);
766
820
  if (aliasedType) {
821
+ cache.set(symbol, aliasedType);
767
822
  return aliasedType;
768
823
  }
769
824
  }
770
825
  const symbolName = symbol.getName();
771
826
  if ((symbolName === 'TypeOf' || symbolName === 'Branded' || symbolName === 'Brand') && this.symbolComesFromModule(symbol, typeChecker, 'io-ts')) {
827
+ cache.set(symbol, symbolName);
772
828
  return symbolName;
773
829
  }
830
+ cache.set(symbol, false);
774
831
  return undefined;
775
832
  }
776
833
  symbolComesFromModule(symbol, typeChecker, moduleName, visited = new Set()) {
777
834
  if (visited.has(symbol)) {
778
835
  return false;
779
836
  }
837
+ const moduleCache = getSymbolModuleOriginCache(typeChecker);
838
+ const cachedByModule = moduleCache.get(symbol);
839
+ const cachedResult = cachedByModule?.get(moduleName);
840
+ if (cachedResult !== undefined) {
841
+ return cachedResult;
842
+ }
780
843
  visited.add(symbol);
844
+ const comesFromModule = this.symbolDeclarationsComeFromModule(symbol, moduleName) || this.aliasedSymbolComesFromModule(symbol, typeChecker, moduleName, visited);
845
+ if (cachedByModule) {
846
+ cachedByModule.set(moduleName, comesFromModule);
847
+ }
848
+ else {
849
+ moduleCache.set(symbol, new Map([[moduleName, comesFromModule]]));
850
+ }
851
+ return comesFromModule;
852
+ }
853
+ symbolDeclarationsComeFromModule(symbol, moduleName) {
781
854
  const declarations = symbol.declarations || (symbol.valueDeclaration ? [symbol.valueDeclaration] : []);
782
- for (const declaration of declarations) {
783
- let current = declaration.parent;
784
- while (current && !ts.isImportDeclaration(current)) {
785
- current = current.parent;
786
- }
787
- if (current && ts.isImportDeclaration(current) && ts.isStringLiteral(current.moduleSpecifier) && current.moduleSpecifier.text === moduleName) {
788
- return true;
789
- }
790
- const fileName = declaration.getSourceFile().fileName.replaceAll('\\', '/');
791
- if (fileName.includes(`/node_modules/${moduleName}/`)) {
792
- return true;
793
- }
855
+ return declarations.some(declaration => this.declarationComesFromModule(declaration, moduleName));
856
+ }
857
+ declarationComesFromModule(declaration, moduleName) {
858
+ const containingImportModuleSpecifier = this.getContainingImportModuleSpecifier(declaration);
859
+ if (containingImportModuleSpecifier === moduleName) {
860
+ return true;
794
861
  }
795
- if ((symbol.flags & ts.SymbolFlags.Alias) !== 0) {
796
- const aliasedSymbol = typeChecker.getAliasedSymbol(symbol);
797
- if (aliasedSymbol !== symbol) {
798
- return this.symbolComesFromModule(aliasedSymbol, typeChecker, moduleName, visited);
799
- }
862
+ const fileName = declaration.getSourceFile().fileName.replaceAll('\\', '/');
863
+ return fileName.includes(`/node_modules/${moduleName}/`);
864
+ }
865
+ getContainingImportModuleSpecifier(node) {
866
+ let current = node.parent;
867
+ while (current && !ts.isImportDeclaration(current)) {
868
+ current = current.parent;
800
869
  }
801
- return false;
870
+ return current && ts.isStringLiteral(current.moduleSpecifier) ? current.moduleSpecifier.text : undefined;
871
+ }
872
+ aliasedSymbolComesFromModule(symbol, typeChecker, moduleName, visited) {
873
+ if ((symbol.flags & ts.SymbolFlags.Alias) === 0) {
874
+ return false;
875
+ }
876
+ const aliasedSymbol = typeChecker.getAliasedSymbol(symbol);
877
+ return aliasedSymbol !== symbol && this.symbolComesFromModule(aliasedSymbol, typeChecker, moduleName, visited);
802
878
  }
803
879
  getLiteralValue(typeNode) {
804
880
  switch (typeNode.literal.kind) {
@@ -1377,48 +1453,81 @@ class TypeResolver {
1377
1453
  return undefined;
1378
1454
  }
1379
1455
  typeArgumentsToContext(type, targetEntity) {
1380
- let newContext = {};
1381
1456
  // Inline object types don't contribute generic declarations, so they map to an empty context.
1382
- if (!this.current.typeChecker) {
1383
- return newContext;
1384
- }
1385
- if (!ts.isIdentifier(targetEntity) && !ts.isQualifiedName(targetEntity)) {
1386
- return newContext;
1387
- }
1388
- const declarations = this.getModelTypeDeclarations(targetEntity);
1389
- const firstDeclaration = declarations[0];
1390
- const typeParameters = firstDeclaration?.typeParameters;
1391
- if (typeParameters) {
1392
- for (let index = 0; index < typeParameters.length; index++) {
1393
- const typeParameter = typeParameters[index];
1394
- const typeArg = type.typeArguments?.[index];
1395
- let resolvedType;
1396
- let name;
1397
- // Argument may be a forward reference from context
1398
- if (typeArg && ts.isTypeReferenceNode(typeArg) && ts.isIdentifier(typeArg.typeName) && this.context[typeArg.typeName.text]) {
1399
- resolvedType = this.context[typeArg.typeName.text].type;
1400
- name = this.context[typeArg.typeName.text].name;
1401
- }
1402
- else if (typeArg) {
1403
- resolvedType = typeArg;
1404
- }
1405
- else if (typeParameter.default) {
1406
- resolvedType = typeParameter.default;
1407
- }
1408
- else {
1409
- throw new exceptions_1.GenerateMetadataError(`Could not find a value for type parameter ${typeParameter.name.text}`, type);
1410
- }
1411
- newContext = {
1412
- ...newContext,
1413
- [typeParameter.name.text]: {
1414
- type: resolvedType,
1415
- name: name || this.calcTypeName(resolvedType),
1416
- },
1417
- };
1418
- }
1457
+ const typeParameters = this.getTypeParametersForTargetEntity(targetEntity);
1458
+ if (!typeParameters?.length) {
1459
+ return {};
1460
+ }
1461
+ let newContext = {};
1462
+ for (let index = 0; index < typeParameters.length; index += 1) {
1463
+ const typeParameter = typeParameters[index];
1464
+ const resolvedType = this.resolveContextualTypeArgument(type, typeParameter, index);
1465
+ newContext = {
1466
+ ...newContext,
1467
+ [typeParameter.name.text]: {
1468
+ type: resolvedType.type,
1469
+ name: resolvedType.name || this.calcTypeName(resolvedType.type),
1470
+ resolvedType: resolvedType.resolvedType,
1471
+ },
1472
+ };
1419
1473
  }
1420
1474
  return newContext;
1421
1475
  }
1476
+ getTypeParametersForTargetEntity(targetEntity) {
1477
+ if (!this.current.typeChecker || (!ts.isIdentifier(targetEntity) && !ts.isQualifiedName(targetEntity))) {
1478
+ return undefined;
1479
+ }
1480
+ const firstDeclaration = this.getModelTypeDeclarations(targetEntity)[0];
1481
+ return firstDeclaration?.typeParameters;
1482
+ }
1483
+ resolveContextualTypeArgument(type, typeParameter, index) {
1484
+ const typeArgument = type.typeArguments?.[index];
1485
+ const contextualType = this.getForwardReferencedContextType(typeArgument);
1486
+ if (contextualType) {
1487
+ return contextualType;
1488
+ }
1489
+ const resolvedType = typeArgument ?? typeParameter.default;
1490
+ if (!resolvedType) {
1491
+ throw new exceptions_1.GenerateMetadataError(`Could not find a value for type parameter ${typeParameter.name.text}`, type);
1492
+ }
1493
+ return {
1494
+ type: resolvedType,
1495
+ name: undefined,
1496
+ resolvedType: this.getResolvedTypeForContextTypeArgument(resolvedType, index),
1497
+ };
1498
+ }
1499
+ getForwardReferencedContextType(typeArgument) {
1500
+ if (!typeArgument || !ts.isTypeReferenceNode(typeArgument) || !ts.isIdentifier(typeArgument.typeName)) {
1501
+ return undefined;
1502
+ }
1503
+ return this.context[typeArgument.typeName.text];
1504
+ }
1505
+ getResolvedTypeForContextTypeArgument(typeNode, index) {
1506
+ if (typeNode.pos === -1) {
1507
+ return this.getReferencerTypeArgument(index);
1508
+ }
1509
+ return this.current.typeChecker.getTypeFromTypeNode(typeNode);
1510
+ }
1511
+ getReferencerTypeArgument(index) {
1512
+ const referencer = this.referencer;
1513
+ return referencer?.aliasTypeArguments?.[index] ?? referencer?.typeArguments?.[index];
1514
+ }
1515
+ getPromisedTypeOfReferencer(typeChecker) {
1516
+ if (!this.referencer) {
1517
+ return undefined;
1518
+ }
1519
+ const extendedTypeChecker = typeChecker;
1520
+ return extendedTypeChecker.getPromisedTypeOfPromise?.(this.referencer);
1521
+ }
1522
+ normalizeTypeNodeFromBuilder(node) {
1523
+ if (!node) {
1524
+ return undefined;
1525
+ }
1526
+ if (ts.isIdentifier(node) || ts.isQualifiedName(node)) {
1527
+ return ts.factory.createTypeReferenceNode(node, undefined);
1528
+ }
1529
+ return node;
1530
+ }
1422
1531
  getReferenceAliasProperties(referenceType) {
1423
1532
  let type = referenceType;
1424
1533
  while (type.dataType === 'refAlias') {