From 40d41f91b79fa376ea9fdd1a696e48870a674a41 Mon Sep 17 00:00:00 2001 From: Mohamed Shams El-Deen Date: Sat, 20 Jun 2026 12:33:43 +0300 Subject: [PATCH 1/2] fix(metadata): add missing void and iterable types to builtin map --- src/generators/metadata/maps/builtin.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/generators/metadata/maps/builtin.json b/src/generators/metadata/maps/builtin.json index 06fa4575..5601f242 100644 --- a/src/generators/metadata/maps/builtin.json +++ b/src/generators/metadata/maps/builtin.json @@ -1,5 +1,7 @@ { "asynciterable": "https://tc39.github.io/ecma262/#sec-asynciterable-interface", + "iterable": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Iteration_protocols#the_iterable_protocol", + "void": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/void", "module namespace object": "https://tc39.github.io/ecma262/#sec-module-namespace-exotic-objects", "null": "https://developer.mozilla.org/docs/Web/JavaScript/Data_structures#null_type", "undefined": "https://developer.mozilla.org/docs/Web/JavaScript/Data_structures#undefined_type", From 1443cc9e23fb4b8611588d037a28d2fafbc0999d Mon Sep 17 00:00:00 2001 From: Mohamed Shams El-Deen Date: Sat, 20 Jun 2026 12:45:40 +0300 Subject: [PATCH 2/2] test(transformers): add void & iterable types to tests --- .../metadata/utils/__tests__/transformers.test.mjs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/generators/metadata/utils/__tests__/transformers.test.mjs b/src/generators/metadata/utils/__tests__/transformers.test.mjs index cbb5836e..7405ddcb 100644 --- a/src/generators/metadata/utils/__tests__/transformers.test.mjs +++ b/src/generators/metadata/utils/__tests__/transformers.test.mjs @@ -55,10 +55,13 @@ describe('transformTypeToReferenceLink', () => { ); }); - it('should handle outer unions with generics like {Promise | boolean}', () => { + it('should handle outer unions with generics like {Promise | Iterable}', () => { strictEqual( - transformTypeToReferenceLink('{Promise | boolean}', {}), - '[``](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<[``](https://developer.mozilla.org/docs/Web/JavaScript/Data_structures#string_type) | [``](https://developer.mozilla.org/docs/Web/JavaScript/Data_structures#number_type)> | [``](https://developer.mozilla.org/docs/Web/JavaScript/Data_structures#boolean_type)' + transformTypeToReferenceLink( + '{Promise | Iterable}', + {} + ), + '[``](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<[``](https://developer.mozilla.org/docs/Web/JavaScript/Data_structures#string_type) | [``](https://developer.mozilla.org/docs/Web/JavaScript/Data_structures#number_type)> | [``](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Iteration_protocols#the_iterable_protocol)<[``](https://developer.mozilla.org/docs/Web/JavaScript/Data_structures#boolean_type)>' ); }); @@ -105,7 +108,7 @@ describe('transformTypeToReferenceLink', () => { '(cb: ([first, second]: string[]) => void) => ({ id, name }: User) => boolean'; const expected = - '(cb: ([first, second]: [``](https://developer.mozilla.org/docs/Web/JavaScript/Data_structures#string_type)[]) => ``) => ({ id, name }: [``](userLink)) => [``](https://developer.mozilla.org/docs/Web/JavaScript/Data_structures#boolean_type)'; + '(cb: ([first, second]: [``](https://developer.mozilla.org/docs/Web/JavaScript/Data_structures#string_type)[]) => [``](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/void)) => ({ id, name }: [``](userLink)) => [``](https://developer.mozilla.org/docs/Web/JavaScript/Data_structures#boolean_type)'; strictEqual( transformTypeToReferenceLink(input, { User: 'userLink' }),