Template-PSModule.psm1

[CmdletBinding()]
param()
$baseName = [System.IO.Path]::GetFileNameWithoutExtension($PSCommandPath)
$script:PSModuleInfo = Import-PowerShellDataFile -Path "$PSScriptRoot\$baseName.psd1"
$script:PSModuleInfo | Format-List | Out-String -Stream | ForEach-Object { Write-Debug $_ }
$scriptName = $script:PSModuleInfo.Name
Write-Debug "[$scriptName] - Importing module"

#region [functions] - [public]
Write-Debug "[$scriptName] - [functions] - [public] - Processing folder"
#region [functions] - [public] - [Get-PSModuleTest]
Write-Debug "[$scriptName] - [functions] - [public] - [Get-PSModuleTest] - Importing"
function Get-PSModuleTest {
    <#
        .SYNOPSIS
        Greets an entity by name.

        .DESCRIPTION
        Returns a greeting string for the given name.
        This is a scaffold example function. Replace it with your module's first real command.

        .EXAMPLE
        Get-PSModuleTest -Name 'World'

        Hello, World!

        .INPUTS
        None

        .OUTPUTS
        System.String
    #>

    [OutputType([string])]
    [CmdletBinding()]
    param (
        # The name of the entity to greet.
        [Parameter(Mandatory)]
        [string] $Name
    )
    "Hello, $Name!"
}
Write-Debug "[$scriptName] - [functions] - [public] - [Get-PSModuleTest] - Done"
#endregion [functions] - [public] - [Get-PSModuleTest]
Write-Debug "[$scriptName] - [functions] - [public] - Done"
#endregion [functions] - [public]

#region Member exporter
$exports = @{
    Alias    = '*'
    Cmdlet   = ''
    Function = 'Get-PSModuleTest'
    Variable = ''
}
Export-ModuleMember @exports
#endregion Member exporter