Private/Get-ModuleVersionInfo.ps1

function Get-ModuleVersionInfo {
    param(
        $Module
    )
    $Module= $Module | Select-Object -First 1
    $ModuleManifestPath = $Module.Path
    If( $ModuleManifestPath) {
        $isModuleManifestPathValid = Test-Path -Path $ModuleManifestPath
        If(!( $isModuleManifestPathValid)) {
            # Module manifest path invalid, skipping extracting prerelease info
            $ModuleVersion= $Module.Version.ToString()
        }
        Else {
            $ModuleManifestContent = Get-Content -Path $ModuleManifestPath
            $preReleaseInfo = $ModuleManifestContent -match "Prerelease = '(.*)'"
            If( $preReleaseInfo) {
                $preReleaseVersion= $preReleaseInfo[0].Split('=')[1].Trim().Trim("'")
                If( $preReleaseVersion) {
                    $ModuleVersion= ('{0}-{1}' -f $Module.Version.ToString(), $preReleaseVersion)
                }
                Else {
                    $ModuleVersion= $Module.Version.ToString()
                }
            }
            Else {
                $ModuleVersion= $Module.Version.ToString()
            }
        }
    }
    Else {
        $ModuleVersion= $Module.Version.ToString()
    }
    $ModuleVersion
}