Utilities/Get-ResolvedValueFromPathSignal.ps1
|
function Get-ResolvedValueFromPathSignal { [CmdletBinding()] param ( [Parameter(Mandatory)] [object]$Dictionary, [Parameter(Mandatory)] [string]$Path ) $opSignal = [Signal]::Start("Resolve-ValueAsSignal:$Path") | Select-Object -Last 1 $resolvedSignal = Resolve-PathFromDictionary -Dictionary $Dictionary -Path $Path | Select-Object -Last 1 $opSignal.MergeSignal($resolvedSignal) | Out-Null if ($resolvedSignal.IsFailure) { $opSignal.LogCritical("Failed to resolve path '$Path'.") return $opSignal } $result = $resolvedSignal.GetResult() $opSignal.SetResult($result) if ($null -eq $result) { $opSignal.LogWarning("Resolved value is null at path '$Path'.") } else { $opSignal.LogInformation("✅ Value resolved and returned for path '$Path'.") } return $opSignal } |