psmm.psm1
|
# psmm root module. # # Import stays cheap by design (fast startup is the whole point): only the # engine and the public entry points are parsed here. The interactive UI # (src/UI/*.ps1, the bulk of the code plus the PwshSpectreConsole dependency) # is dot-sourced on the first Show-PSModuleManager call — see Initialize-PSMMUI. $script:PSMMRoot = $PSScriptRoot $script:PSMMUISourced = $false # Explicit file lists: deterministic order, no directory-glob cost at import. $psmmEngineFiles = @( 'src/Engine/Settings.ps1' 'src/Engine/Entry.ps1' 'src/Engine/Discovery.ps1' 'src/Engine/Save.ps1' 'src/Engine/Install.ps1' 'src/Engine/State.ps1' 'src/Engine/Conflict.ps1' 'src/Engine/Startup.ps1' 'src/Engine/Tasks.ps1' 'src/Engine/Auth.ps1' 'src/Engine/Gallery.ps1' ) $psmmPublicFiles = @( 'src/Public/Invoke-PSMMStartup.ps1' 'src/Public/Show-PSModuleManager.ps1' 'src/Public/Get-PSMMConfigPath.ps1' ) foreach ($f in $psmmEngineFiles + $psmmPublicFiles) { . (Join-Path $PSScriptRoot $f) } Set-Alias -Name psmm -Value Show-PSModuleManager Export-ModuleMember ` -Function 'Show-PSModuleManager', 'Invoke-PSMMStartup', 'Get-PSMMConfigPath' ` -Alias 'psmm' |