private/Add-SpectreTreeNode.ps1
using namespace Spectre.Console <# .SYNOPSIS Recursively adds child nodes to a parent node in a Spectre.Console tree. .DESCRIPTION The Add-SpectreTreeNode function adds child nodes to a parent node in a Spectre.Console tree. It does this recursively, so it can handle nested child nodes. .PARAMETER Node The parent node to which the child nodes will be added. .PARAMETER Children An array of child nodes to be added to the parent node. Each child node should be an object with a 'Label' property and a 'Children' property (which can be an empty array if the child has no children of its own). .NOTES See Format-SpectreTree for usage. #> function Add-SpectreTreeNode { param ( [Parameter(Mandatory)] [IHasTreeNodes] $Node, [Parameter(Mandatory)] [array] $Children ) foreach ($child in $Children) { $newNode = [HasTreeNodeExtensions]::AddNode($Node, $child.Label) if ($child.Children.Count -gt 0) { Add-SpectreTreeNode -Node $newNode -Children $child.Children } } } |