< Summary - Kestrun — Combined Coverage

Information
Class: Public.Response.Write-KrBsonResponse
Assembly: Kestrun.PowerShell.Public
File(s): /home/runner/work/Kestrun/Kestrun/src/PowerShell/Kestrun/Public/Response/Write-KrBsonResponse.ps1
Tag: Kestrun/Kestrun@2d87023b37eb91155071c91dd3d6a2eeb3004705
Line coverage
0%
Covered lines: 0
Uncovered lines: 6
Coverable lines: 6
Total lines: 51
Line coverage: 0%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Coverage history

Coverage history 0 25 50 75 100 08/26/2025 - 01:25:22 Line coverage: 0% (0/2) Total lines: 33 Tag: Kestrun/Kestrun@07f821172e5dc3657f1be7e6818f18d6721cf38a09/04/2025 - 22:37:32 Line coverage: 0% (0/2) Total lines: 34 Tag: Kestrun/Kestrun@afb7aadc0a8a42bfa2b51ea62c8a6e2cf63faec609/12/2025 - 03:43:11 Line coverage: 0% (0/3) Total lines: 37 Tag: Kestrun/Kestrun@d160286e3020330b1eb862d66a37db2e26fc904209/16/2025 - 16:28:42 Line coverage: 0% (0/6) Total lines: 51 Tag: Kestrun/Kestrun@d5c0d6132e97ca542441289c02a4c9e9d0364d49

Metrics

File(s)

/home/runner/work/Kestrun/Kestrun/src/PowerShell/Kestrun/Public/Response/Write-KrBsonResponse.ps1

#LineLine coverage
 1<#
 2    .SYNOPSIS
 3        Writes an object serialized as BSON to the HTTP response.
 4    .DESCRIPTION
 5        Converts the provided object to BSON format and writes it to the response body. The status code and content type
 6    .PARAMETER InputObject
 7        The object to serialize and write to the response.
 8    .PARAMETER StatusCode
 9        The HTTP status code to set for the response. Defaults to 200.
 10    .PARAMETER ContentType
 11        The content type to set for the response. If not specified, defaults to application/bson.
 12    .EXAMPLE
 13        Write-KrBsonResponse -InputObject $myObject -StatusCode 200 -ContentType "application/bson"
 14        Writes the $myObject serialized as BSON to the response with a 200 status code and content type "application/bso
 15    .NOTES
 16        This function is designed to be used in the context of a Kestrun server response.
 17#>
 18function Write-KrBsonResponse {
 19    [KestrunRuntimeApi('Route')]
 20    [CmdletBinding()]
 21    param(
 22        [Parameter(Mandatory = $true, ValueFromPipeline = $true)]
 23        [object]$InputObject,
 24        [Parameter()]
 25        [int]$StatusCode = 200,
 26        [Parameter()]
 27        [string]$ContentType
 28    )
 29    begin {
 30        # Collect all piped items
 031        $items = [System.Collections.Generic.List[object]]::new()
 32    }
 33    process {
 34        # Accumulate; no output yet
 035        $items.Add($InputObject)
 36    }
 37    end {
 38        # Only works inside a route script block where $Context is available
 039        if ($null -eq $Context -or $null -eq $Context.Response) {
 040            Write-KrOutsideRouteWarning
 41            return
 42        }
 43        #  - single item by default when only one was piped
 44        #  - array if multiple items were piped
 045        $payload = if ($items.Count -eq 1) { $items[0] } else { $items.ToArray() }
 46
 47        # Write the CBOR response
 048        $Context.Response.WriteBsonResponse($payload, $StatusCode, $ContentType)
 49    }
 50}
 51

Methods/Properties

Write-KrBsonResponse()