Components/PS.Util.CommentHelp/Public/Get-PSUtilCommentHelpInfo.ps1

function Get-PSUtilCommentHelpInfo {
    [CmdletBinding()]
    Param(

        [Parameter(
            Mandatory,
            ValueFromPipeline
        )]
        [System.Management.Automation.Language.FunctionDefinitionAst]
        $FuntionDefinitionAst

    )

    PROCESS {

        $predicate = {
            param($astObject) $astObject.GetType().Name -like 'FunctionDefinitionAst'
        }

        $commentHelp = $FuntionDefinitionAst.GetHelpContent()

        $commentHelpType = if ($commentHelp) {

            $errors = $null
            $ast    = [System.Management.Automation.Language.Parser]::ParseInput($FuntionDefinitionAst.Extent.Text, [ref]$null, [ref]$errors)
            $result = $ast.FindAll($predicate, $false)

            if ($result.GetHelpContent()) {
                'Internal'
            } else {
                'External'
            }

        }
        else {
            "None"
        }

        [PSCustomObject]@{
            FunctionName    = $FuntionDefinitionAst.Name
            CommentHelpType = $commentHelpType
            CommentHelp     = $commentHelp
        }

    }

}