Private/Restore-PlumberStreamPesterOutput.ps1
|
function Restore-PlumberStreamPesterOutput { <# .SYNOPSIS Restores the Plumber Pester-streaming preference using a token from Set-PlumberStreamPesterOutput. .DESCRIPTION Restores the previous value captured before Set-PlumberStreamPesterOutput was called, or removes the variable entirely if it didn't exist before. Always call this in a finally block paired with Set-PlumberStreamPesterOutput so nested Invoke-Plumber calls don't leak streaming state to the caller. .PARAMETER Token The token returned by Set-PlumberStreamPesterOutput. .EXAMPLE $token = Set-PlumberStreamPesterOutput -Value $true try { # ... run build ... } finally { Restore-PlumberStreamPesterOutput -Token $token } #> [Diagnostics.CodeAnalysis.SuppressMessageAttribute( 'PSUseShouldProcessForStateChangingFunctions', '', Justification = 'Pairs with Set-PlumberStreamPesterOutput as a stack restore.' )] [CmdletBinding()] param ( [Parameter(Mandatory)] [pscustomobject] $Token ) if ($Token.HadValue) { Set-Variable -Name PlumberStreamPesterOutput -Scope Global -Value $Token.PreviousValue } else { $removeSplat = @{ Name = 'PlumberStreamPesterOutput' Scope = 'Global' ErrorAction = 'SilentlyContinue' } Remove-Variable @removeSplat } } |