Public/ConvertTo-CamelCaseKeys.ps1

Function ConvertTo-CamelCaseKeys {
    <#
        .Synopsis
            Convert all keys of a HashTable to CamelCase
        .Example
            @{'hello-world'=42} | ConvertTo-CamelCaseKeys
            # Returns: @{HelloWorld=42}
    #>

    [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseSingularNouns', '', Justification = 'Keys refers to hashtable keys, plural is correct')]
    [CmdletBinding()]
    [OutputType([hashtable])]
    param(
        [Parameter(Position = 0, Mandatory = $true, ValueFromPipeline = $true)]
        [hashtable]$InputHashTable
    )
    Begin {
        [hashtable]$OutputHashTable = @{}
    }
    Process {
        foreach ($k in $InputHashTable.Keys) {
            $OutputHashTable += @{ ($k | ConvertTo-CamelCase) = $InputHashTable.$k }
        }
    }
    End {
        return $OutputHashTable
    }
}