public/formatting/Add-SpectreTableRow.ps1
using module "..\..\private\completions\Transformers.psm1" <# .SYNOPSIS Adds a row to a Spectre Console table. .DESCRIPTION Adds a row to a Spectre Console table. The number of columns in the row must match the number of columns in the table. .PARAMETER Table The table to which the row will be added. .PARAMETER Columns An array of renderable items containing the data to be displayed in the columns of this row. .EXAMPLE $data = @( [pscustomobject]@{Name="John"; Age=25; City="New York"}, [pscustomobject]@{Name="Jane"; Age=30; City="Los Angeles"} ) $table = Format-SpectreTable -Data $data $table | Out-SpectreHost $table = Add-SpectreTableRow -Table $table -Columns "Shaun", 99, "Wellington" $table | Out-SpectreHost #> function Add-SpectreTableRow { [Reflection.AssemblyMetadata("title", "Add-SpectreTableRow")] param ( [Parameter(Mandatory)] [Spectre.Console.Table] $Table, [Parameter(ValueFromPipeline)] [array] $Columns ) if ($table.Columns.Count -ne $Columns.Count) { throw "The number of columns $($Columns.Count) in the row must match the number of columns in the table $($table.Columns.Count)" } $renderableColumns = $Columns | Foreach-Object { $_ | ConvertTo-Renderable } $table = [Spectre.Console.TableExtensions]::AddRow($Table, [Spectre.Console.Rendering.Renderable[]]$renderableColumns) return $table } |