SetupD365Environment.psm1

<#
Get-ChildItem *.ps1 -Path $PSScriptRoot\Export, $PSScriptRoot\Private -Recurse | ForEach-Object {
    . $_.FullName
}
 
Get-ChildItem *.ps1 -Path $PSScriptRoot\Export -Recurse | ForEach-Object {
    Export-ModuleMember $_.BaseName
}
#>

  
#Get public and private function definition files.
$Public = @( Get-ChildItem -Path $PSScriptRoot\Export\*.ps1 -ErrorAction SilentlyContinue )
$Private = @( Get-ChildItem -Path $PSScriptRoot\Private\*.ps1 -ErrorAction SilentlyContinue )

# Dot source the files
Foreach ($import in @($Public + $Private)) {
    Try {
        . $import.fullname
    }
    Catch {
        Write-Error -Message "Failed to import function $($import.fullname): $_"
    }
}

# Here I might...
# Read in or create an initial config file and variable
# Export Public functions ($Public.BaseName) for WIP modules
# Set variables visible to the module and its functions only
Foreach ($import in $Public) {    
    Export-ModuleMember -Function $import.Basename
}