Public/Get-ExpressionCacheProvider.ps1

<#
.SYNOPSIS
Gets a registered cache provider by name.
 
.DESCRIPTION
Returns the provider object previously registered via Initialize-ExpressionCache. Useful for
inspection during tests or for provider-specific operations (e.g., reading the cache folder path).
 
.PARAMETER ProviderName
The provider name (e.g., 'LocalFileSystemCache', 'Redis').
 
.OUTPUTS
PSCustomObject (provider), or $null if not found.
 
.EXAMPLE
Get-ExpressionCacheProvider -ProviderName 'LocalFileSystemCache'
#>

function Get-ExpressionCacheProvider { 
    param(
        [string]$ProviderName,
        [switch]$NoFallback
    ) 

    $result = With-ReadLock {
        if ($ProviderName -and $script:RegisteredStorageProviders.Contains($ProviderName)) {
            $script:RegisteredStorageProviders[$ProviderName]
        }
    }

    if ($null -ne $result) {
        return $result
    }

    if ($NoFallback) {
        return
    }

    return With-ReadLock { $script:RegisteredStorageProviders }
}