KeDo_MiniHelper.psm1

$FunctionScriptName = "MiniHelper"
Write-Verbose "Import-Start| [$($FunctionScriptName)]"


# Just an easy way to add PSObject to an array
function Add2Arr($Property) { New-Object PSObject -Property $Property }

# Used for normal output - can be changed here to anything thats needed for automation and reporting #? Implemented as a last resort due to ever changing env requirements of output...
function Write-Out($in) { 
    switch ($env:OutputSwitch) {
        "Host" {Write-Host $in}
        "Output" {Write-Output $in}
        "Verbose" {Write-Verbose $in}
        "Debug" {Write-Debug $in}
        "Warning" {Write-Warning $in}
        "Error" {Write-Error $in}
        "None" {}
        default {Write-Output $in}
    }
}
function Write-VOut($in) { 
    switch ($env:VerboseSwitch) {
        "Host" {Write-Host $in}
        "Output" {Write-Output $in}
        "Verbose" {Write-Verbose $in}
        "Debug" {Write-Debug $in}
        "Warning" {Write-Warning $in}
        "Error" {Write-Error $in}
        "None" {}
        default {Write-Verbose $in}
    }
} 
function Write-DOut($in) { 
    switch ($env:DebugSwitch) {
        "Host" {Write-Host $in}
        "Output" {Write-Output $in}
        "Verbose" {Write-Verbose $in}
        "Debug" {Write-Debug $in}
        "Warning" {Write-Warning $in}
        "Error" {Write-Error $in}
        "None" {}
        default {Write-Debug $in}
    }
} 
# Replace unwanted characters from variable
function PrettyVar($in, $Filter = $env:PrettyRegex, $Replace = '') { ($in -replace $Filter, $Replace).trim() } # [^a-zA-Z ,.0-9-]

# Replace all except AlphaNum from var
function AlphaNumVar($in, $Filter = '[^a-zA-Z0-9]', $Replace = '_') { ($in -replace $Filter, $Replace).trim() } # [^a-zA-Z0-9]

# Get first value of array that is not $null - returns $null if not exist || Input should be sorted accordingly
function FirstNotNull ($in) { 
    if(($in | Measure-Object).Count -gt 0 ) { 
        $values = ($in | Where-Object { $null -ne $_  })
        if($values.count -eq 1) {$values} else {$values[0]}
    } else { $null }
}

Export-ModuleMember -Function *
Write-Verbose "Import-END| [$($FunctionScriptName)]"