public/items/use_order.ps1

function Use-Order {
    [cmdletbinding()]
    [Alias("uo")]
    param(
        [Parameter(Position = 0)][int]$Ordinal = -1,
        [Parameter(ValueFromPipeline)][array]$List,
        [Parameter()][switch]$OpenInEditor,
        [Parameter()][Alias("w")][switch]$OpenInBrowser
    )

    begin {
        $finallist = @()
        $i = 0
    }
    process {
        $newList = @()
        foreach ($item in $List) {
            # Rebuild object so "#" is the first property
            $props = [ordered]@{ '#' = $i }
            foreach($p in $item.PSObject.Properties){
                $props[$p.Name] = $p.Value
            }
            $newList += [pscustomobject]$props
            $i++
        }

        $finalList += $newList
    }

    end {
        if ($Ordinal -gt -1) {
            $itemId = $finallist[$Ordinal].id

            
            if($OpenInBrowser){
                # Open
                $item = Get-ProjectItem -ItemId $itemId
                Open-Url $($item.url)
            } else {
                # Show
                Show-ProjectItem -Item $itemId -OpenInEditor:$OpenInEditor
            }
        }
        else {
            $finalList | Format-Table -AutoSize
        }
    }
} Export-ModuleMember -Function Use-Order -Alias "uo"