functions/Get-CmdFavRepository.ps1

function Get-CmdFavRepository {
    <#
        .SYNOPSIS
        Retrieves CmdFav repository information from the configuration.
 
        .DESCRIPTION
        Returns a list of CmdFav repositories registered in the configuration, including their
        name und path. You can filter by repository name.
 
        .PARAMETER Name
        The name(s) of the repository or repositories to retrieve. If omitted, all repositories
        are returned.
 
        .EXAMPLE
        Get-CmdFavRepository
        Returns all registered CmdFav repositories.
 
        .EXAMPLE
        Get-CmdFavRepository -Name "myRepo"
        Returns information for the repository named "myRepo".
    #>

    [CmdletBinding()]
    param (
        [PSFramework.TabExpansion.PsfArgumentCompleterAttribute("CmdFav.RepoNames")]
        [Parameter(Mandatory = $false, ParameterSetName = 'addOnRepo')]
        [string[]]$Name
    )
    $repoConfig = Get-PSFConfig -Module CmdFav -Name "Repository.*"
    $repoNames = [array]($repoConfig.Name -replace 'Repository\.([^\.]+)\..*', '$1' | Select-Object -Unique)
    if ($Name) {
        $repoNames = [array]($repoNames | Where-Object { $Name -contains $_ })
    }
    Write-PSFMessage -Level Verbose -Message "Found CmdFav repositories: $($repoNames -join ', ')"
    foreach ($repoName in $repoNames) {
        $resultHash = @{
            name = $repoName
            Path=Get-PSFConfigValue -FullName "CmdFav.Repository.$repoName.Path"
        }
        [PSCustomObject]$resultHash
    }
}