Private/Functions/CasingHelpers.ps1
|
# Casing conversion helper functions function ConvertTo-PascalCase { param( [Parameter(Position=0, ValueFromPipeline)] $InputObject ) Begin {} Process { if ($InputObject -is [string]) { [regex]::replace($InputObject.ToLower(), '(^|_)(.)', { $args[0].Groups[2].Value.ToUpper()}) } elseif ($InputObject -is [hashtable]) { $InputObject.Keys.Clone() | ForEach-Object { $OriginalValue = $InputObject[$_] $InputObject.Remove($_) $InputObject[$($_ | ConvertTo-PascalCase)] = $OriginalValue } $InputObject } } End {} } function ConvertTo-SnakeCase { param( [Parameter(Position=0, ValueFromPipeline)] $InputObject ) Begin {} Process { if ($InputObject -is [string]) { [regex]::replace($InputObject, '(?<=.)(?=[A-Z])', '_').ToLower() } elseif ($InputObject -is [hashtable]) { $InputObject.Keys.Clone() | ForEach-Object { $OriginalValue = $InputObject[$_] $InputObject.Remove($_) $InputObject[$($_ | ConvertTo-SnakeCase)] = $OriginalValue } $InputObject } } End {} } function ConvertTo-UrlEncoded { param ( [Parameter(Position=0, ValueFromPipeline)] [string] $Value ) Begin {} Process { [System.Net.WebUtility]::UrlEncode($Value) } End {} } |