Private/Runtime/Get-OpenApiLinkHeaderNext.ps1
|
function Get-OpenApiLinkHeaderNext { <# .SYNOPSIS Returns the URL of the rel="next" entry of an RFC 8288 Link header, or $null. #> [CmdletBinding()] [OutputType([string])] param( [Parameter()] [AllowNull()] [AllowEmptyCollection()] [string[]]$LinkHeader ) foreach ($header in @($LinkHeader)) { if ([string]::IsNullOrEmpty($header)) { continue } foreach ($match in [regex]::Matches($header, '<([^>]*)>([^<]*)')) { $parameters = $match.Groups[2].Value if ($parameters -match '(?i)(^|;)\s*rel\s*=\s*"?([^";]*)"?') { $relations = $Matches[2].Trim().Split(' ', [System.StringSplitOptions]::RemoveEmptyEntries) if ($relations -contains 'next') { return $match.Groups[1].Value } } } } return $null } |