File tree Expand file tree Collapse file tree 2 files changed +50
-1
lines changed
src/generators/jsx-ast/utils Expand file tree Collapse file tree 2 files changed +50
-1
lines changed Original file line number Diff line number Diff line change 1+ import assert from 'node:assert/strict' ;
2+ import { describe , it } from 'node:test' ;
3+
4+ import { generateSignature } from '../buildSignature.mjs' ;
5+
6+ describe ( 'generateSignature' , ( ) => {
7+ it ( 'formats union return types without spaces as spaced ("|" surrounded)' , ( ) => {
8+ const sig = generateSignature (
9+ 'foo' ,
10+ {
11+ params : [ ] ,
12+ return : { type : 'string|number' } ,
13+ } ,
14+ ''
15+ ) ;
16+
17+ assert . equal ( sig , 'foo(): string | number' ) ;
18+ } ) ;
19+
20+ it ( 'preserves already spaced union return types' , ( ) => {
21+ const sig = generateSignature (
22+ 'bar' ,
23+ {
24+ params : [ ] ,
25+ return : { type : 'Promise<string> | undefined' } ,
26+ } ,
27+ ''
28+ ) ;
29+
30+ assert . equal ( sig , 'bar(): Promise<string> | undefined' ) ;
31+ } ) ;
32+
33+ it ( 'omits return type when undefined' , ( ) => {
34+ const sig = generateSignature (
35+ 'baz' ,
36+ {
37+ params : [ ] ,
38+ return : undefined ,
39+ } ,
40+ ''
41+ ) ;
42+
43+ assert . equal ( sig , 'baz()' ) ;
44+ } ) ;
45+ } ) ;
Original file line number Diff line number Diff line change @@ -23,7 +23,11 @@ export const generateSignature = (
2323 }
2424
2525 // Function or method
26- const returnStr = returnType ? `: ${ returnType . type } ` : '' ;
26+ const returnStr = ( returnType ? `: ${ returnType . type } ` : '' )
27+ . split ( '|' )
28+ . map ( part => part . trim ( ) )
29+ . filter ( Boolean )
30+ . join ( ' | ' ) ;
2731
2832 const paramsStr = params
2933 . map ( param => {
You can’t perform that action at this time.
0 commit comments