Skip to content

Commit 9b00879

Browse files
Bug-62 : Corrected an issue where once again assumed a specific format, this code is now more flexible with arrays containing oneof/anyof/allof or arrays of just objects
1 parent e563d36 commit 9b00879

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

schema/schema.psm1

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -706,8 +706,13 @@ function Find-Element {
706706
}
707707
'array' {
708708
write-verbose "array"
709-
[string]$Selector = $Schema.items.properties.keys -match "of"
709+
#[array]$keys = $Schema.items.properties.keys|ForEach-Object {$_.ToLower()}
710+
[array]$keys = $Schema.items.psobject.Properties.Name.ToLower()
711+
if ($keys.Contains('oneof')) { $Selector = "OneOf" }
712+
if ($keys.Contains('allof')) { $Selector = "AllOf" }
713+
if ($keys.Contains('anyof')) { $Selector = "AnyOf" }
710714
if ($Selector){
715+
write-verbose "Found Selector : $($Selector)"
711716
if ($Schema.items.$Selector.properties.keys -contains $ElementName) {
712717
return $Schema.items.$Selector.properties.$ElementName
713718
}
@@ -719,6 +724,7 @@ function Find-Element {
719724
}
720725
}
721726
} else {
727+
write-verbose "No Selector"
722728
if ($Schema.items.properties.keys -contains $ElementName) {
723729
return $Schema.items.properties.$ElementName
724730
}
@@ -1062,10 +1068,19 @@ function ConvertFrom-Array {
10621068
Write-Verbose "ConvertFrom-Array: Calculated: $($Depth)"
10631069
foreach ($item in $Array.items) {
10641070
Write-Verbose "ConvertFrom-Array: Found: $($item |Out-string)"
1071+
[array]$keys = $item.psobject.Properties.Name.ToLower()
1072+
if ($keys.Contains('oneof')) { $Selector = "OneOf" }
1073+
if ($keys.Contains('allof')) { $Selector = "AllOf" }
1074+
if ($keys.Contains('anyof')) { $Selector = "AnyOf" }
1075+
if ($Selector) {
1076+
write-verbose "Selector : $($Selector)"
1077+
$retVal += (ConvertFrom-SchemaObject -Object $item.$Selector -depth $Depth)
1078+
} else {
1079+
$retVal += (ConvertFrom-SchemaObject -Object $item -depth $Depth)
1080+
}
10651081
# foreach ($key in $item.psobject.Properties.name) {
10661082
# Write-Verbose "ConvertFrom-Array: Found: $($key)"
10671083
# $retVal += (ConvertFrom-SchemaObject -Object $item.$key -depth $Depth)
1068-
$retVal += (ConvertFrom-SchemaObject -Object $item -depth $Depth)
10691084
# }
10701085
}
10711086
}

0 commit comments

Comments
 (0)