66
77use Illuminate \Support \Facades \Cache ;
88use Prism \Prism \Contracts \Schema ;
9+ use Prism \Prism \Schema \AnyOfSchema ;
910use Prism \Prism \Schema \ArraySchema ;
1011use Prism \Prism \Schema \BooleanSchema ;
1112use Prism \Prism \Schema \EnumSchema ;
@@ -326,7 +327,7 @@ protected function getSchemeParameters(array $properties, string $definitionName
326327 $ parameters = [];
327328 foreach ($ properties as $ name => $ property ) {
328329
329- $ parameter = $ this ->getSchemeParameter ($ name , $ property , $ definitionName );
330+ $ parameter = $ this ->getSchemeParameter (( string ) $ name , $ property , $ definitionName );
330331 if ($ parameter instanceof Schema) {
331332 $ parameters [] = $ parameter ;
332333 }
@@ -348,6 +349,14 @@ protected function getSchemeParameter(string $name, array $property, string $def
348349
349350 $ type = data_get ($ property , 'type ' );
350351 $ description = $ this ->getParameterDescription ($ name , $ property , $ definitionName );
352+
353+ if ($ type === null && isset ($ property ['anyOf ' ])) {
354+ $ type = 'anyOf ' ;
355+ $ itemsSchema = $ this ->getSchemeParameters (data_get ($ property , 'anyOf ' , []), $ definitionName );
356+
357+ return new AnyOfSchema ($ itemsSchema , $ name , $ description );
358+ }
359+
351360 $ itemsSchema = $ this ->getSchemeParameter ('' , data_get ($ property , 'items ' , []), $ definitionName );
352361
353362 return match ($ type ) {
0 commit comments