@openrewrite/rewrite 8.66.0-20251028-141506 → 8.66.0-20251029-101717

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.
@@ -41,5 +41,17 @@ export declare class JavaScriptTypeMapping {
41
41
  * This method should only be called for primitive and unknown types
42
42
  */
43
43
  private createPrimitiveOrUnknownType;
44
+ /**
45
+ * Create an empty function type shell with FQN 𝑓.
46
+ * The shell will be populated later to handle circular references.
47
+ */
48
+ private createEmptyFunctionType;
49
+ /**
50
+ * Populate a function type with signature information.
51
+ * The function type has generic type parameters for return type (first) and parameter types (subsequent),
52
+ * and contains an apply() method with the matching signature.
53
+ * Since the shell is already in the cache, any recursive references will find it.
54
+ */
55
+ private populateFunctionType;
44
56
  }
45
57
  //# sourceMappingURL=type-mapping.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"type-mapping.d.ts","sourceRoot":"","sources":["../../src/javascript/type-mapping.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAC,IAAI,EAAC,MAAM,SAAS,CAAC;AAQ7B,qBAAa,qBAAqB;IAQ1B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAP5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyC;IACnE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IACrD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAsB;IACxD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAsB;IACxD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAsB;gBAGpC,OAAO,EAAE,EAAE,CAAC,WAAW;IA4B5C,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,GAAG,SAAS;IAUrC,OAAO,CAAC,OAAO;IAsCf,OAAO,CAAC,YAAY;IA2BpB,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS;IAQ5C,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,GAAG,SAAS;IAYlE;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAqCxB,OAAO,CAAC,WAAW;IAanB,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,SAAS;IA8SlD;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IA6F7B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAkC5B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAyHzB;;;OAGG;IACH,OAAO,CAAC,4BAA4B;CAkEvC"}
1
+ {"version":3,"file":"type-mapping.d.ts","sourceRoot":"","sources":["../../src/javascript/type-mapping.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAC,IAAI,EAAC,MAAM,SAAS,CAAC;AAS7B,qBAAa,qBAAqB;IAQ1B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAP5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyC;IACnE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IACrD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAsB;IACxD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAsB;IACxD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAsB;gBAGpC,OAAO,EAAE,EAAE,CAAC,WAAW;IA4B5C,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,GAAG,SAAS;IAUrC,OAAO,CAAC,OAAO;IAwEf,OAAO,CAAC,YAAY;IA2BpB,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS;IAQ5C,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,GAAG,SAAS;IAYlE;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAqCxB,OAAO,CAAC,WAAW;IAanB,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,SAAS;IA8SlD;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IA6F7B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAkC5B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAyHzB;;;OAGG;IACH,OAAO,CAAC,4BAA4B;IAmEpC;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAiB/B;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;CA8D/B"}
@@ -23,6 +23,7 @@ exports.JavaScriptTypeMapping = void 0;
23
23
  const typescript_1 = __importDefault(require("typescript"));
24
24
  const java_1 = require("../java");
25
25
  const immer_1 = require("immer");
26
+ var FUNCTION_TYPE_NAME = java_1.Type.FUNCTION_TYPE_NAME;
26
27
  // Helper class to create Type objects that immer won't traverse
27
28
  class NonDraftableType {
28
29
  constructor() {
@@ -71,6 +72,28 @@ class JavaScriptTypeMapping {
71
72
  // Arrays in JavaScript are objects with methods, so we treat them as class types
72
73
  const symbol = (_b = type.getSymbol) === null || _b === void 0 ? void 0 : _b.call(type);
73
74
  if (symbol) {
75
+ // Check for function symbols
76
+ if (symbol.flags & typescript_1.default.SymbolFlags.Function) {
77
+ const callSignatures = type.getCallSignatures();
78
+ if (callSignatures.length > 0) {
79
+ // Create and cache shell first to handle circular references
80
+ const functionType = this.createEmptyFunctionType();
81
+ this.typeCache.set(signature, functionType);
82
+ this.populateFunctionType(functionType, callSignatures[0]);
83
+ return functionType;
84
+ }
85
+ }
86
+ // Check for function-scoped or block-scoped variables that might be functions
87
+ if (symbol.flags & (typescript_1.default.SymbolFlags.FunctionScopedVariable | typescript_1.default.SymbolFlags.BlockScopedVariable)) {
88
+ const callSignatures = type.getCallSignatures();
89
+ if (callSignatures.length > 0) {
90
+ // Create and cache shell first to handle circular references
91
+ const functionType = this.createEmptyFunctionType();
92
+ this.typeCache.set(signature, functionType);
93
+ this.populateFunctionType(functionType, callSignatures[0]);
94
+ return functionType;
95
+ }
96
+ }
74
97
  if (symbol.flags & (typescript_1.default.SymbolFlags.Class | typescript_1.default.SymbolFlags.Interface | typescript_1.default.SymbolFlags.Enum | typescript_1.default.SymbolFlags.TypeAlias)) {
75
98
  // Create and cache shell first to handle circular references
76
99
  const classType = this.createEmptyClassType(type);
@@ -79,6 +102,15 @@ class JavaScriptTypeMapping {
79
102
  return classType;
80
103
  }
81
104
  }
105
+ // Check for function types without symbols (anonymous functions, function types)
106
+ const callSignatures = type.getCallSignatures();
107
+ if (callSignatures.length > 0) {
108
+ // Function type - create and cache shell first to handle circular references
109
+ const functionType = this.createEmptyFunctionType();
110
+ this.typeCache.set(signature, functionType);
111
+ this.populateFunctionType(functionType, callSignatures[0]);
112
+ return functionType;
113
+ }
82
114
  // For anonymous object types that could have circular references
83
115
  if (type.flags & typescript_1.default.TypeFlags.Object) {
84
116
  const objectFlags = type.objectFlags;
@@ -780,6 +812,88 @@ class JavaScriptTypeMapping {
780
812
  }
781
813
  return java_1.Type.unknownType;
782
814
  }
815
+ /**
816
+ * Create an empty function type shell with FQN 𝑓.
817
+ * The shell will be populated later to handle circular references.
818
+ */
819
+ createEmptyFunctionType() {
820
+ return Object.assign(new NonDraftableType(), {
821
+ kind: java_1.Type.Kind.Class,
822
+ flags: 0,
823
+ classKind: java_1.Type.Class.Kind.Interface,
824
+ fullyQualifiedName: FUNCTION_TYPE_NAME,
825
+ typeParameters: [],
826
+ annotations: [],
827
+ interfaces: [],
828
+ members: [],
829
+ methods: [],
830
+ toJSON: function () {
831
+ return java_1.Type.signature(this);
832
+ }
833
+ });
834
+ }
835
+ /**
836
+ * Populate a function type with signature information.
837
+ * The function type has generic type parameters for return type (first) and parameter types (subsequent),
838
+ * and contains an apply() method with the matching signature.
839
+ * Since the shell is already in the cache, any recursive references will find it.
840
+ */
841
+ populateFunctionType(functionClass, signature) {
842
+ var _b;
843
+ const returnType = this.getType(signature.getReturnType());
844
+ const parameters = signature.getParameters();
845
+ const parameterTypes = [];
846
+ const parameterNames = [];
847
+ // Get parameter types
848
+ for (const param of parameters) {
849
+ const declaration = param.valueDeclaration || ((_b = param.declarations) === null || _b === void 0 ? void 0 : _b[0]);
850
+ if (declaration) {
851
+ const paramType = this.checker.getTypeOfSymbolAtLocation(param, declaration);
852
+ parameterTypes.push(this.getType(paramType));
853
+ parameterNames.push(param.getName());
854
+ }
855
+ }
856
+ // Build the type parameters list with proper variance:
857
+ // - Return type is covariant (R)
858
+ // - Parameter types are contravariant (P1, P2, ...)
859
+ const typeParameters = [];
860
+ // Return type parameter (covariant)
861
+ typeParameters.push(Object.assign(new NonDraftableType(), {
862
+ kind: java_1.Type.Kind.GenericTypeVariable,
863
+ name: 'R',
864
+ variance: java_1.Type.GenericTypeVariable.Variance.Covariant,
865
+ bounds: [returnType]
866
+ }));
867
+ // Parameter type variables (contravariant)
868
+ parameterTypes.forEach((paramType, index) => {
869
+ typeParameters.push(Object.assign(new NonDraftableType(), {
870
+ kind: java_1.Type.Kind.GenericTypeVariable,
871
+ name: `P${index + 1}`,
872
+ variance: java_1.Type.GenericTypeVariable.Variance.Contravariant,
873
+ bounds: [paramType]
874
+ }));
875
+ });
876
+ functionClass.typeParameters = typeParameters;
877
+ // Create the apply() method
878
+ const applyMethod = Object.assign(new NonDraftableType(), {
879
+ kind: java_1.Type.Kind.Method,
880
+ flags: 0,
881
+ declaringType: functionClass,
882
+ name: 'apply',
883
+ returnType: returnType,
884
+ parameterNames: parameterNames,
885
+ parameterTypes: parameterTypes,
886
+ thrownExceptions: [],
887
+ annotations: [],
888
+ defaultValue: undefined,
889
+ declaredFormalTypeNames: [],
890
+ toJSON: function () {
891
+ return java_1.Type.signature(this);
892
+ }
893
+ });
894
+ // Add the apply method to the function class
895
+ functionClass.methods.push(applyMethod);
896
+ }
783
897
  }
784
898
  exports.JavaScriptTypeMapping = JavaScriptTypeMapping;
785
899
  //# sourceMappingURL=type-mapping.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"type-mapping.js","sourceRoot":"","sources":["../../src/javascript/type-mapping.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"type-mapping.js","sourceRoot":"","sources":["../../src/javascript/type-mapping.ts"],"names":[],"mappings":"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"}
File without changes
package/dist/version.txt CHANGED
@@ -1 +1 @@
1
- 8.66.0-20251028-141049
1
+ 8.66.0-20251029-101211
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openrewrite/rewrite",
3
- "version": "8.66.0-20251028-141506",
3
+ "version": "8.66.0-20251029-101717",
4
4
  "license": "Moderne Source Available License",
5
5
  "description": "OpenRewrite JavaScript.",
6
6
  "homepage": "https://github.com/openrewrite/rewrite",
package/src/java/type.ts CHANGED
@@ -20,6 +20,8 @@ export interface Type {
20
20
  }
21
21
 
22
22
  export namespace Type {
23
+ export const FUNCTION_TYPE_NAME = '𝑓';
24
+
23
25
  export const Kind = {
24
26
  Annotation: "org.openrewrite.java.tree.JavaType$Annotation",
25
27
  AnnotationElementValue: "org.openrewrite.java.tree.JavaType$Annotation$ElementValue",
@@ -238,6 +240,10 @@ export namespace Type {
238
240
  return type?.kind === Type.Kind.Class;
239
241
  }
240
242
 
243
+ export function isFunctionType(type?: Type): type is Type.Class {
244
+ return type?.kind === Type.Kind.Class && (type as Type.Class).fullyQualifiedName === FUNCTION_TYPE_NAME;
245
+ }
246
+
241
247
  export function isMethod(type?: Type): type is Type.Method {
242
248
  return type?.kind === Type.Kind.Method;
243
249
  }
@@ -1144,9 +1144,42 @@ export class TabsAndIndentsVisitor<P> extends JavaScriptVisitor<P> {
1144
1144
  }
1145
1145
 
1146
1146
  protected async preVisit(tree: J, p: P): Promise<J | undefined> {
1147
- const ret = await super.preVisit(tree, p);
1148
- let indentShouldIncrease = tree.kind === J.Kind.Block || tree.kind === J.Kind.Case;
1147
+ let ret = await super.preVisit(tree, p)! as J;
1149
1148
 
1149
+ let indentShouldIncrease =
1150
+ tree.kind === J.Kind.Block
1151
+ || this.cursor.parent?.parent?.parent?.value.kind == J.Kind.Case
1152
+ || (tree.kind === J.Kind.MethodDeclaration && this.cursor.parent?.value.kind === JS.Kind.StatementExpression);
1153
+
1154
+ const previousIndent = this.currentIndent;
1155
+
1156
+ if (tree.kind === J.Kind.IfElse && this.cursor.getNearestMessage("else-indent") !== undefined) {
1157
+ this.cursor.messages.set("indentToUse", this.cursor.getNearestMessage("else-indent"));
1158
+ } else if (indentShouldIncrease) {
1159
+ this.cursor.messages.set("indentToUse", this.currentIndent + this.singleIndent);
1160
+ }
1161
+
1162
+ if (tree.kind === J.Kind.IfElse && this.cursor.messages.get("else-indent") !== undefined) {
1163
+ this.cursor.messages.set("indentToUse", this.cursor.messages.get("else-indent"));
1164
+ this.cursor.messages.delete("else-indent");
1165
+ }
1166
+ const relativeIndent: string = this.currentIndent;
1167
+
1168
+ ret = produce(ret, draft => {
1169
+ if (draft.prefix == undefined) {
1170
+ draft.prefix = {kind: J.Kind.Space, comments: [], whitespace: ""};
1171
+ }
1172
+ if (draft.prefix.whitespace.includes("\n")) {
1173
+ draft.prefix.whitespace = this.combineIndent(draft.prefix.whitespace, relativeIndent);
1174
+ }
1175
+ if (draft.kind === J.Kind.Block) {
1176
+ const block = draft as Draft<J> as Draft<J.Block>;
1177
+ const indentToUseInClosing = indentShouldIncrease ? previousIndent : relativeIndent;
1178
+ block.end.whitespace = this.combineIndent(block.end.whitespace, indentToUseInClosing);
1179
+ }
1180
+ });
1181
+
1182
+ indentShouldIncrease = false;
1150
1183
  // Increase indent for control structures with non-block bodies
1151
1184
  if (tree.kind === J.Kind.If) {
1152
1185
  const ifStmt = tree as J.If;
@@ -1165,12 +1198,10 @@ export class TabsAndIndentsVisitor<P> extends JavaScriptVisitor<P> {
1165
1198
  indentShouldIncrease = true;
1166
1199
  }
1167
1200
  }
1168
-
1169
- if (tree.kind === J.Kind.IfElse && this.cursor.getNearestMessage("else-indent") !== undefined) {
1170
- this.cursor.messages.set("indentToUse", this.cursor.getNearestMessage("else-indent"));
1171
- } else if (indentShouldIncrease) {
1201
+ if (indentShouldIncrease) {
1172
1202
  this.cursor.messages.set("indentToUse", this.currentIndent + this.singleIndent);
1173
1203
  }
1204
+
1174
1205
  return ret;
1175
1206
  }
1176
1207
 
@@ -1178,29 +1209,7 @@ export class TabsAndIndentsVisitor<P> extends JavaScriptVisitor<P> {
1178
1209
  if (this.cursor?.getNearestMessage("stop") != null) {
1179
1210
  return tree as R;
1180
1211
  }
1181
- let ret = await super.visit(tree, p, parent) as R;
1182
- if (ret == undefined) {
1183
- return ret;
1184
- }
1185
-
1186
- if (tree.kind === J.Kind.IfElse && this.cursor.messages.get("else-indent") !== undefined) {
1187
- this.cursor.messages.set("indentToUse", this.cursor.messages.get("else-indent"));
1188
- this.cursor.messages.delete("else-indent");
1189
- }
1190
- const relativeIndent: string = this.currentIndent;
1191
-
1192
- return produce(ret, draft => {
1193
- if (draft.prefix == undefined) {
1194
- draft.prefix = {kind: J.Kind.Space, comments: [], whitespace: ""};
1195
- }
1196
- if (draft.prefix.whitespace.includes("\n")) {
1197
- draft.prefix.whitespace = this.combineIndent(draft.prefix.whitespace, relativeIndent);
1198
- }
1199
- if (draft.kind === J.Kind.Block) {
1200
- const block = draft as Draft<J> as Draft<J.Block>;
1201
- block.end.whitespace = this.combineIndent(block.end.whitespace, relativeIndent);
1202
- }
1203
- });
1212
+ return await super.visit(tree, p, parent) as R;
1204
1213
  }
1205
1214
 
1206
1215
  public async visitLeftPadded<T extends J | J.Space | number | string | boolean>(left: J.LeftPadded<T>, p: P): Promise<J.LeftPadded<T>> {
@@ -14,6 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import ts from 'typescript';
17
+ import * as path from 'path';
17
18
  import {
18
19
  Comment,
19
20
  emptyContainer,
@@ -116,7 +117,11 @@ export class JavaScriptParser extends Parser {
116
117
 
117
118
  // Populate inputFiles map and remove from cache if necessary
118
119
  for (const input of inputs) {
119
- const sourcePath = parserInputFile(input);
120
+ let sourcePath = parserInputFile(input);
121
+ // If relativeTo is set and path is not absolute, make it absolute
122
+ if (this.relativeTo && !path.isAbsolute(sourcePath)) {
123
+ sourcePath = path.join(this.relativeTo, sourcePath);
124
+ }
120
125
  inputFiles.set(sourcePath, input);
121
126
  // Remove from cache if previously cached
122
127
  this.sourceFileCache && this.sourceFileCache.delete(sourcePath);
@@ -189,6 +194,61 @@ export class JavaScriptParser extends Parser {
189
194
  return input ? parserInputRead(input) : ts.sys.readFile(fileName);
190
195
  };
191
196
 
197
+ // Custom module resolution to handle in-memory imports
198
+ // This is required because TypeScript's default module resolution looks for files on disk,
199
+ // but our source files only exist in memory (in the inputFiles map)
200
+ host.resolveModuleNameLiterals = (moduleLiterals, containingFile) => {
201
+ const resolvedModules: ts.ResolvedModuleWithFailedLookupLocations[] = [];
202
+ const containingDir = path.dirname(containingFile);
203
+
204
+ for (const moduleLiteral of moduleLiterals) {
205
+ const moduleName = moduleLiteral.text;
206
+
207
+ // For relative imports, try to find in inputFiles first
208
+ if (moduleName.startsWith('.')) {
209
+ const extensions = ['.tsx', '.ts', '.jsx', '.js', '.mts', '.cts'];
210
+ let resolved: string | undefined;
211
+
212
+ for (const ext of extensions) {
213
+ // Try with extension
214
+ const candidate = path.join(containingDir, moduleName + ext);
215
+ if (inputFiles.has(candidate)) {
216
+ resolved = candidate;
217
+ break;
218
+ }
219
+ // Also try exact match (if moduleName already has extension)
220
+ const exactCandidate = path.join(containingDir, moduleName);
221
+ if (inputFiles.has(exactCandidate)) {
222
+ resolved = exactCandidate;
223
+ break;
224
+ }
225
+ }
226
+
227
+ if (resolved) {
228
+ resolvedModules.push({
229
+ resolvedModule: {
230
+ resolvedFileName: resolved,
231
+ extension: path.extname(resolved) as ts.Extension,
232
+ isExternalLibraryImport: false,
233
+ }
234
+ });
235
+ continue;
236
+ }
237
+ }
238
+
239
+ // Fall back to TypeScript's default resolution for node_modules and absolute paths
240
+ const result = ts.resolveModuleName(
241
+ moduleName,
242
+ containingFile,
243
+ this.compilerOptions,
244
+ host
245
+ );
246
+
247
+ resolvedModules.push(result);
248
+ }
249
+ return resolvedModules;
250
+ };
251
+
192
252
  // Create a new Program, passing the oldProgram for incremental parsing
193
253
  const program = ts.createProgram([...inputFiles.keys()], this.compilerOptions, host, this.oldProgram);
194
254
 
@@ -16,6 +16,7 @@
16
16
  import ts from "typescript";
17
17
  import {Type} from "../java";
18
18
  import {immerable} from "immer";
19
+ import FUNCTION_TYPE_NAME = Type.FUNCTION_TYPE_NAME;
19
20
 
20
21
  // Helper class to create Type objects that immer won't traverse
21
22
  class NonDraftableType {
@@ -79,6 +80,30 @@ export class JavaScriptTypeMapping {
79
80
  // Arrays in JavaScript are objects with methods, so we treat them as class types
80
81
  const symbol = type.getSymbol?.();
81
82
  if (symbol) {
83
+ // Check for function symbols
84
+ if (symbol.flags & ts.SymbolFlags.Function) {
85
+ const callSignatures = type.getCallSignatures();
86
+ if (callSignatures.length > 0) {
87
+ // Create and cache shell first to handle circular references
88
+ const functionType = this.createEmptyFunctionType();
89
+ this.typeCache.set(signature, functionType);
90
+ this.populateFunctionType(functionType, callSignatures[0]);
91
+ return functionType;
92
+ }
93
+ }
94
+
95
+ // Check for function-scoped or block-scoped variables that might be functions
96
+ if (symbol.flags & (ts.SymbolFlags.FunctionScopedVariable | ts.SymbolFlags.BlockScopedVariable)) {
97
+ const callSignatures = type.getCallSignatures();
98
+ if (callSignatures.length > 0) {
99
+ // Create and cache shell first to handle circular references
100
+ const functionType = this.createEmptyFunctionType();
101
+ this.typeCache.set(signature, functionType);
102
+ this.populateFunctionType(functionType, callSignatures[0]);
103
+ return functionType;
104
+ }
105
+ }
106
+
82
107
  if (symbol.flags & (ts.SymbolFlags.Class | ts.SymbolFlags.Interface | ts.SymbolFlags.Enum | ts.SymbolFlags.TypeAlias)) {
83
108
  // Create and cache shell first to handle circular references
84
109
  const classType = this.createEmptyClassType(type);
@@ -88,6 +113,16 @@ export class JavaScriptTypeMapping {
88
113
  }
89
114
  }
90
115
 
116
+ // Check for function types without symbols (anonymous functions, function types)
117
+ const callSignatures = type.getCallSignatures();
118
+ if (callSignatures.length > 0) {
119
+ // Function type - create and cache shell first to handle circular references
120
+ const functionType = this.createEmptyFunctionType();
121
+ this.typeCache.set(signature, functionType);
122
+ this.populateFunctionType(functionType, callSignatures[0]);
123
+ return functionType;
124
+ }
125
+
91
126
  // For anonymous object types that could have circular references
92
127
  if (type.flags & ts.TypeFlags.Object) {
93
128
  const objectFlags = (type as ts.ObjectType).objectFlags;
@@ -840,4 +875,94 @@ export class JavaScriptTypeMapping {
840
875
 
841
876
  return Type.unknownType;
842
877
  }
878
+
879
+ /**
880
+ * Create an empty function type shell with FQN 𝑓.
881
+ * The shell will be populated later to handle circular references.
882
+ */
883
+ private createEmptyFunctionType(): Type.Class {
884
+ return Object.assign(new NonDraftableType(), {
885
+ kind: Type.Kind.Class,
886
+ flags: 0,
887
+ classKind: Type.Class.Kind.Interface,
888
+ fullyQualifiedName: FUNCTION_TYPE_NAME,
889
+ typeParameters: [],
890
+ annotations: [],
891
+ interfaces: [],
892
+ members: [],
893
+ methods: [],
894
+ toJSON: function () {
895
+ return Type.signature(this);
896
+ }
897
+ }) as Type.Class;
898
+ }
899
+
900
+ /**
901
+ * Populate a function type with signature information.
902
+ * The function type has generic type parameters for return type (first) and parameter types (subsequent),
903
+ * and contains an apply() method with the matching signature.
904
+ * Since the shell is already in the cache, any recursive references will find it.
905
+ */
906
+ private populateFunctionType(functionClass: Type.Class, signature: ts.Signature): void {
907
+ const returnType = this.getType(signature.getReturnType());
908
+ const parameters = signature.getParameters();
909
+ const parameterTypes: Type[] = [];
910
+ const parameterNames: string[] = [];
911
+
912
+ // Get parameter types
913
+ for (const param of parameters) {
914
+ const declaration = param.valueDeclaration || param.declarations?.[0];
915
+ if (declaration) {
916
+ const paramType = this.checker.getTypeOfSymbolAtLocation(param, declaration);
917
+ parameterTypes.push(this.getType(paramType));
918
+ parameterNames.push(param.getName());
919
+ }
920
+ }
921
+
922
+ // Build the type parameters list with proper variance:
923
+ // - Return type is covariant (R)
924
+ // - Parameter types are contravariant (P1, P2, ...)
925
+ const typeParameters: Type[] = [];
926
+
927
+ // Return type parameter (covariant)
928
+ typeParameters.push(Object.assign(new NonDraftableType(), {
929
+ kind: Type.Kind.GenericTypeVariable,
930
+ name: 'R',
931
+ variance: Type.GenericTypeVariable.Variance.Covariant,
932
+ bounds: [returnType]
933
+ }) as Type.GenericTypeVariable);
934
+
935
+ // Parameter type variables (contravariant)
936
+ parameterTypes.forEach((paramType, index) => {
937
+ typeParameters.push(Object.assign(new NonDraftableType(), {
938
+ kind: Type.Kind.GenericTypeVariable,
939
+ name: `P${index + 1}`,
940
+ variance: Type.GenericTypeVariable.Variance.Contravariant,
941
+ bounds: [paramType]
942
+ }) as Type.GenericTypeVariable);
943
+ });
944
+
945
+ functionClass.typeParameters = typeParameters;
946
+
947
+ // Create the apply() method
948
+ const applyMethod = Object.assign(new NonDraftableType(), {
949
+ kind: Type.Kind.Method,
950
+ flags: 0,
951
+ declaringType: functionClass,
952
+ name: 'apply',
953
+ returnType: returnType,
954
+ parameterNames: parameterNames,
955
+ parameterTypes: parameterTypes,
956
+ thrownExceptions: [],
957
+ annotations: [],
958
+ defaultValue: undefined,
959
+ declaredFormalTypeNames: [],
960
+ toJSON: function () {
961
+ return Type.signature(this);
962
+ }
963
+ }) as Type.Method;
964
+
965
+ // Add the apply method to the function class
966
+ functionClass.methods.push(applyMethod);
967
+ }
843
968
  }
package/src/rpc/server.ts CHANGED
File without changes