core/public/Get-JaxBuildSectionNames.ps1
|
function Get-JaxBuildSectionNames { [CmdletBinding()] param ( [System.Collections.IDictionary] $Config ) $defaults = @('build', 'modules') if ($null -eq $Config) { return $defaults } $names = $null if ($Config.Keys -contains 'buildSectionName') { $names = @($Config['buildSectionName']) } elseif ($Config.Keys -contains 'buildSectionNames') { $names = $Config['buildSectionNames'] } if ($names -is [string]) { $names = @($names) } if ($null -ne $names) { $filteredNames = New-Object 'System.Collections.Generic.List[string]' $seen = [System.Collections.Generic.HashSet[string]]::new([System.StringComparer]::OrdinalIgnoreCase) foreach ($name in @($names)) { if ([string]::IsNullOrWhiteSpace([string]$name)) { continue } $value = [string]$name if ($seen.Add($value)) { $filteredNames.Add($value) | Out-Null } } $names = @($filteredNames) } if ($null -eq $names -or $names.Count -eq 0) { return $defaults } return $names } |