Private/Resolve-ModuleDependencies.ps1
function Resolve-ModuleDependencies { param ( [string]$ModuleName, [string]$InstallCommand = $ModuleName # Defaults to the same name as the module ) # Check if the module is installed if (-not (Get-Module -ListAvailable -Name $ModuleName)) { Write-Host "Missing required module '$ModuleName'. Installing..." try { Install-Module -Name $InstallCommand -Scope CurrentUser -Force -AllowClobber Write-Host "Module '$ModuleName' installed successfully." } catch { Write-Error "Failed to install required module '$ModuleName': $_" return } } else { Write-Debug "Found required module '$ModuleName'. Continuing..." } # Import the module if not already imported if (-not (Get-Module -Name $ModuleName)) { try { Import-Module -Name $ModuleName -ErrorAction Stop Write-Debug "Module '$ModuleName' imported successfully." } catch { Write-Error "Failed to import module '$ModuleName': $_" } } else { Write-Debug "Module '$ModuleName' is already imported." } } |