public/Get-WinGetLatestPackage.ps1
function Get-WinGetLatestPackage { [CmdletBinding()] param( [parameter(Mandatory = $true, ParameterSetName = "SearchById")] [string]$Id, [parameter(Mandatory = $true, ParameterSetName = "SearchByName")] [string]$Name, [parameter(Mandatory = $true, ParameterSetName = "SearchByMoniker")] [string]$Moniker, [parameter(Mandatory = $true, ParameterSetName = "SearchByPathPart")] [string]$PathPart, [Parameter(Mandatory = $true, ParameterSetName = "Manifest")] [string]$Manifest ) if ($Id -ne '') { $App = Find-WinGetPackages -Id $Id -Latest } if ($Name -ne '') { $App = Find-WinGetPackages -Name $Name -Latest } if ($Moniker -ne '') { $App = Find-WinGetPackages -Moniker $Moniker -Latest } if ($PathPart -ne '') { $App = Find-WinGetPackages -PathPart $PathPart -Latest } if ($Manifest -eq '') { $Manifest = $App.ManifestPath } $Output = [text.encoding]::utf8.getstring((Invoke-WebRequest -Uri $Manifest).Content) | ConvertFrom-Yaml return $Output } |