public/Invoke-WpcPreProcess.ps1
|
function Invoke-WpcPreProcess { param( $node, [System.Collections.IDictionary] $baseVars, [string] $repoRoot, [string] $sourceDir ) if ($node -is [System.Collections.IDictionary]) { $result = [ordered]@{} foreach ($key in $node.Keys) { $result[$key] = Invoke-WpcPreProcess -node $node[$key] -baseVars $baseVars -repoRoot $repoRoot -sourceDir $sourceDir } return $result } if ($node -is [System.Collections.IEnumerable] -and $node -isnot [string]) { $result = [System.Collections.Generic.List[object]]::new() foreach ($item in $node) { $processed = Invoke-WpcPreProcess -node $item -baseVars $baseVars -repoRoot $repoRoot -sourceDir $sourceDir $result.Add($processed) } return $result.ToArray() } if ($node -is [string]) { return Invoke-WpcPreProcessString -str $node -baseVars $baseVars -repoRoot $repoRoot -sourceDir $sourceDir } return $node } |