From edca0aa986eca5a828e55f41561777f2f840c57f Mon Sep 17 00:00:00 2001 From: btea <2356281422@qq.com> Date: Wed, 24 Dec 2025 11:14:37 +0800 Subject: [PATCH 1/3] fix: add spaces between different return types of functions --- src/generators/jsx-ast/utils/buildSignature.mjs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/generators/jsx-ast/utils/buildSignature.mjs b/src/generators/jsx-ast/utils/buildSignature.mjs index b6ba238a..e649b66e 100644 --- a/src/generators/jsx-ast/utils/buildSignature.mjs +++ b/src/generators/jsx-ast/utils/buildSignature.mjs @@ -23,7 +23,11 @@ export const generateSignature = ( } // Function or method - const returnStr = returnType ? `: ${returnType.type}` : ''; + const returnStr = (returnType ? `: ${returnType.type}` : '') + .split('|') + .map(part => part.trim()) + .filter(Boolean) + .join(' | '); const paramsStr = params .map(param => { From fe6e017f15a35b242755e304484fecb959e0e0c9 Mon Sep 17 00:00:00 2001 From: btea <2356281422@qq.com> Date: Wed, 24 Dec 2025 21:45:08 +0800 Subject: [PATCH 2/3] test: add --- .../utils/__tests__/buildSignature.test.mjs | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/generators/jsx-ast/utils/__tests__/buildSignature.test.mjs diff --git a/src/generators/jsx-ast/utils/__tests__/buildSignature.test.mjs b/src/generators/jsx-ast/utils/__tests__/buildSignature.test.mjs new file mode 100644 index 00000000..be8faa7b --- /dev/null +++ b/src/generators/jsx-ast/utils/__tests__/buildSignature.test.mjs @@ -0,0 +1,45 @@ +import assert from 'node:assert/strict'; +import { describe, it } from 'node:test'; + +import { generateSignature } from '../buildSignature.mjs'; + +describe('generateSignature - return type spacing', () => { + it('formats union return types without spaces as spaced ("|" surrounded)', () => { + const sig = generateSignature( + 'foo', + { + params: [], + return: { type: 'string|number' }, + }, + '' + ); + + assert.equal(sig, 'foo(): string | number'); + }); + + it('preserves already spaced union return types', () => { + const sig = generateSignature( + 'bar', + { + params: [], + return: { type: 'Promise | undefined' }, + }, + '' + ); + + assert.equal(sig, 'bar(): Promise | undefined'); + }); + + it('omits return type when undefined', () => { + const sig = generateSignature( + 'baz', + { + params: [], + return: undefined, + }, + '' + ); + + assert.equal(sig, 'baz()'); + }); +}); From 8b40c89c9a7d1482386e7e85fcbba4be3bda4929 Mon Sep 17 00:00:00 2001 From: btea <2356281422@qq.com> Date: Thu, 25 Dec 2025 07:21:05 +0800 Subject: [PATCH 3/3] test: update --- src/generators/jsx-ast/utils/__tests__/buildSignature.test.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/generators/jsx-ast/utils/__tests__/buildSignature.test.mjs b/src/generators/jsx-ast/utils/__tests__/buildSignature.test.mjs index be8faa7b..f65d7e6f 100644 --- a/src/generators/jsx-ast/utils/__tests__/buildSignature.test.mjs +++ b/src/generators/jsx-ast/utils/__tests__/buildSignature.test.mjs @@ -3,7 +3,7 @@ import { describe, it } from 'node:test'; import { generateSignature } from '../buildSignature.mjs'; -describe('generateSignature - return type spacing', () => { +describe('generateSignature', () => { it('formats union return types without spaces as spaced ("|" surrounded)', () => { const sig = generateSignature( 'foo',