Skip to content

Commit 43ccbe5

Browse files
committed
Fix display of React refs
1 parent 045c055 commit 43ccbe5

File tree

32 files changed

+134
-258
lines changed

32 files changed

+134
-258
lines changed

src/models/node.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
export interface TypeNode {
22
readonly kind: string;
33
name: string | undefined;
4-
parentNamespaces: string[];
4+
parentNamespaces: string[] | undefined;
55
}

src/models/types/intersection.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,16 @@ export class IntersectionNode implements TypeNode {
77

88
constructor(
99
public name: string | undefined,
10-
public parentNamespaces: string[],
10+
parentNamespaces: string[],
1111
types: TypeNode[],
1212
public properties: PropertyNode[],
1313
) {
1414
const flatTypes = flattenTypes(types, IntersectionNode);
1515
sortMemberTypes(flatTypes);
1616
this.types = deduplicateMemberTypes(flatTypes);
17+
this.parentNamespaces = name ? parentNamespaces : undefined;
1718
}
1819

1920
types: readonly TypeNode[];
21+
parentNamespaces: string[] | undefined;
2022
}

src/models/types/union.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,18 @@ export class UnionNode implements TypeNode {
88

99
constructor(
1010
public name: string | undefined,
11-
public parentNamespaces: string[],
11+
parentNamespaces: string[],
1212
types: TypeNode[],
1313
) {
1414
const flatTypes = flattenTypes(types, UnionNode);
1515
sanitizeBooleanLiterals(flatTypes);
1616
sortMemberTypes(flatTypes);
1717
this.types = deduplicateMemberTypes(flatTypes);
18+
this.parentNamespaces = name ? parentNamespaces : undefined;
1819
}
1920

2021
types: readonly TypeNode[];
22+
parentNamespaces: string[] | undefined;
2123
}
2224

2325
/**

src/parsers/typeResolver.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -89,10 +89,7 @@ export function resolveType(
8989
return new ReferenceNode('RefCallback', []);
9090
}
9191

92-
return new ReferenceNode(
93-
getTypeName(type, typeSymbol, checker) ?? checker.typeToString(type),
94-
namespaces,
95-
);
92+
return new ReferenceNode(typeName ?? checker.typeToString(type), namespaces);
9693
}
9794

9895
if (hasFlag(type.flags, ts.TypeFlags.Boolean)) {
@@ -359,6 +356,10 @@ export function getTypeName(
359356
return useFallback ? checker.typeToString(type) : undefined;
360357
}
361358

359+
if (typeSymbol && !type.aliasSymbol && !type.symbol) {
360+
return useFallback ? checker.typeToString(type) : undefined;
361+
}
362+
362363
const typeName = symbol.getName();
363364
if (typeName === '__type') {
364365
return useFallback ? checker.typeToString(type) : undefined;

test/aliases/output.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@
2525
"value": 2
2626
}
2727
],
28-
"name": "Alias",
29-
"parentNamespaces": []
28+
"parentNamespaces": [],
29+
"name": "Alias"
3030
},
3131
"name": "a",
3232
"optional": false
@@ -84,8 +84,8 @@
8484
"value": 2
8585
}
8686
],
87-
"name": "Alias",
88-
"parentNamespaces": []
87+
"parentNamespaces": [],
88+
"name": "Alias"
8989
},
9090
"optional": false
9191
},

test/arrays/output.json

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,7 @@
6161
"parentNamespaces": [],
6262
"name": "undefined"
6363
}
64-
],
65-
"name": "Array",
66-
"parentNamespaces": []
64+
]
6765
},
6866
"optional": true
6967
},
@@ -86,8 +84,7 @@
8684
"parentNamespaces": [],
8785
"name": "undefined"
8886
}
89-
],
90-
"parentNamespaces": []
87+
]
9188
},
9289
"optional": true
9390
}

test/base-ui-component/output.json

Lines changed: 12 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,7 @@
2323
"parentNamespaces": [],
2424
"name": "undefined"
2525
}
26-
],
27-
"parentNamespaces": []
26+
]
2827
},
2928
"optional": true
3029
},
@@ -62,8 +61,7 @@
6261
"parentNamespaces": [],
6362
"name": "undefined"
6463
}
65-
],
66-
"parentNamespaces": []
64+
]
6765
},
6866
"optional": true
6967
},
@@ -84,10 +82,6 @@
8482
"parentNamespaces": [],
8583
"name": "undefined"
8684
}
87-
],
88-
"name": "RefObject",
89-
"parentNamespaces": [
90-
"React"
9185
]
9286
},
9387
"optional": true
@@ -144,8 +138,7 @@
144138
"parentNamespaces": [],
145139
"name": "undefined"
146140
}
147-
],
148-
"parentNamespaces": []
141+
]
149142
},
150143
"optional": true
151144
},
@@ -200,16 +193,15 @@
200193
"parentNamespaces": [],
201194
"name": "undefined"
202195
}
203-
],
204-
"parentNamespaces": []
196+
]
205197
},
206198
"optional": true
207199
}
208200
]
209201
}
210202
],
211-
"name": "HTMLProps<any>",
212203
"parentNamespaces": [],
204+
"name": "HTMLProps<any>",
213205
"properties": [
214206
{
215207
"name": "ref",
@@ -228,8 +220,7 @@
228220
"parentNamespaces": [],
229221
"name": "undefined"
230222
}
231-
],
232-
"parentNamespaces": []
223+
]
233224
},
234225
"optional": true
235226
}
@@ -276,8 +267,7 @@
276267
"parentNamespaces": [],
277268
"name": "undefined"
278269
}
279-
],
280-
"parentNamespaces": []
270+
]
281271
},
282272
"optional": true
283273
}
@@ -333,8 +323,7 @@
333323
"parentNamespaces": [],
334324
"name": "undefined"
335325
}
336-
],
337-
"parentNamespaces": []
326+
]
338327
},
339328
"optional": true
340329
},
@@ -389,16 +378,15 @@
389378
"parentNamespaces": [],
390379
"name": "undefined"
391380
}
392-
],
393-
"parentNamespaces": []
381+
]
394382
},
395383
"optional": true
396384
}
397385
]
398386
}
399387
],
400-
"name": "HTMLProps<any>",
401388
"parentNamespaces": [],
389+
"name": "HTMLProps<any>",
402390
"properties": [
403391
{
404392
"name": "ref",
@@ -417,8 +405,7 @@
417405
"parentNamespaces": [],
418406
"name": "undefined"
419407
}
420-
],
421-
"parentNamespaces": []
408+
]
422409
},
423410
"optional": true
424411
}
@@ -455,8 +442,7 @@
455442
"parentNamespaces": [],
456443
"name": "undefined"
457444
}
458-
],
459-
"parentNamespaces": []
445+
]
460446
},
461447
"optional": true
462448
}

test/component-function-declaration/output.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,7 @@
2323
"parentNamespaces": [],
2424
"name": "undefined"
2525
}
26-
],
27-
"parentNamespaces": []
26+
]
2827
},
2928
"optional": true
3029
}

test/component-function-variable/output.json

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,7 @@
2323
"parentNamespaces": [],
2424
"name": "undefined"
2525
}
26-
],
27-
"parentNamespaces": []
26+
]
2827
},
2928
"optional": true
3029
},
@@ -43,8 +42,7 @@
4342
"parentNamespaces": [],
4443
"name": "undefined"
4544
}
46-
],
47-
"parentNamespaces": []
45+
]
4846
},
4947
"optional": true
5048
}
@@ -73,8 +71,7 @@
7371
"parentNamespaces": [],
7472
"name": "undefined"
7573
}
76-
],
77-
"parentNamespaces": []
74+
]
7875
},
7976
"optional": true
8077
},
@@ -93,8 +90,7 @@
9390
"parentNamespaces": [],
9491
"name": "undefined"
9592
}
96-
],
97-
"parentNamespaces": []
93+
]
9894
},
9995
"optional": true
10096
}
@@ -123,8 +119,7 @@
123119
"parentNamespaces": [],
124120
"name": "undefined"
125121
}
126-
],
127-
"parentNamespaces": []
122+
]
128123
},
129124
"optional": true
130125
},
@@ -143,8 +138,7 @@
143138
"parentNamespaces": [],
144139
"name": "undefined"
145140
}
146-
],
147-
"parentNamespaces": []
141+
]
148142
},
149143
"optional": true
150144
}

test/conditional-types/output.json

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,7 @@
3434
"parentNamespaces": [],
3535
"name": "null"
3636
}
37-
],
38-
"parentNamespaces": []
37+
]
3938
}
4039
}
4140
]
@@ -80,8 +79,7 @@
8079
"parentNamespaces": [],
8180
"name": "null"
8281
}
83-
],
84-
"parentNamespaces": []
82+
]
8583
},
8684
"optional": false
8785
}

0 commit comments

Comments
 (0)