private/Test-DynamicFunctionDefinition.ps1
function Test-DynamicFunctionDefinition { <# .SYNOPSIS Validates a function definition .DESCRIPTION Test-DynamicFunctionDefinition creates a new scriptblock from the provided $Definition to guarantee the code will execute. .INPUTS string .OUTPUTS scriptblock .EXAMPLE Test-DynamicFunctionDefinition -Definition (Get-Command -Name Resolve-DynamicFunctionDefinition).Definition Validate the definition of the 'Resolve-DynamicFunctionDefinition function #> [CmdletBinding()] param ( # Function definition string to validate [Parameter(Mandatory, ValueFromPipeline)] [string]$Definition ) process { try { try { return [ScriptBlock]::Create($Definition) } catch { Write-Verbose $Definition.ToString() throw "Function definition is invalid: $_" } } catch { $PSCmdlet.ThrowTerminatingError($_) } } } |