@@ -235,32 +235,48 @@ public function getFiles(): array
235235 */
236236 public function getTypeName (array $ parameter , array $ spec = []): string
237237 {
238+ $ typeName = '' ;
239+
238240 if (isset ($ parameter ['enumName ' ])) {
239- return \ucfirst ($ parameter ['enumName ' ]);
240- }
241- if (!empty ($ parameter ['enumValues ' ])) {
242- return \ucfirst ($ parameter ['name ' ]);
241+ $ typeName = \ucfirst ($ parameter ['enumName ' ]);
242+ } elseif (!empty ($ parameter ['enumValues ' ])) {
243+ $ typeName = \ucfirst ($ parameter ['name ' ]);
244+ } else {
245+ switch ($ parameter ['type ' ] ?? '' ) {
246+ case self ::TYPE_FILE :
247+ $ typeName = 'InputFile ' ;
248+ break ;
249+ case self ::TYPE_NUMBER :
250+ case self ::TYPE_INTEGER :
251+ $ typeName = 'float ' ;
252+ break ;
253+ case self ::TYPE_BOOLEAN :
254+ $ typeName = 'bool ' ;
255+ break ;
256+ case self ::TYPE_STRING :
257+ $ typeName = 'str ' ;
258+ break ;
259+ case self ::TYPE_ARRAY :
260+ if (!empty (($ parameter ['array ' ] ?? [])['type ' ]) && !\is_array ($ parameter ['array ' ]['type ' ])) {
261+ $ typeName = 'List[ ' . $ this ->getTypeName ($ parameter ['array ' ]) . '] ' ;
262+ } else {
263+ $ typeName = 'List[Any] ' ;
264+ }
265+ break ;
266+ case self ::TYPE_OBJECT :
267+ $ typeName = 'dict ' ;
268+ break ;
269+ default :
270+ $ typeName = $ parameter ['type ' ];
271+ break ;
272+ }
243273 }
244- switch ($ parameter ['type ' ] ?? '' ) {
245- case self ::TYPE_FILE :
246- return 'InputFile ' ;
247- case self ::TYPE_NUMBER :
248- case self ::TYPE_INTEGER :
249- return 'float ' ;
250- case self ::TYPE_BOOLEAN :
251- return 'bool ' ;
252- case self ::TYPE_STRING :
253- return 'str ' ;
254- case self ::TYPE_ARRAY :
255- if (!empty (($ parameter ['array ' ] ?? [])['type ' ]) && !\is_array ($ parameter ['array ' ]['type ' ])) {
256- return 'List[ ' . $ this ->getTypeName ($ parameter ['array ' ]) . '] ' ;
257- }
258- return 'List[Any] ' ;
259- case self ::TYPE_OBJECT :
260- return 'dict ' ;
261- default :
262- return $ parameter ['type ' ];
274+
275+ if (!($ parameter ['required ' ] ?? true ) || ($ parameter ['nullable ' ] ?? false )) {
276+ return 'Optional[ ' . $ typeName . '] ' ;
263277 }
278+
279+ return $ typeName ;
264280 }
265281
266282 /**
0 commit comments