Common/Public/Get-ModuleDependency.ps1
function Get-ModuleDependency { [CmdletBinding()] param ( [Parameter(Mandatory = $true)] [System.Management.Automation.PSModuleInfo] $Module, [switch] $AsModuleInfo ) if ($Module.RequiredModules) { Write-Verbose "$($Module.Name) has required modules" foreach ($moduleName in $Module.RequiredModules) { $moduleInfo = Get-Module -ListAvailable -Name $moduleName.Name if ($moduleName.Version) {$moduleInfo = $moduleInfo | Where-Object Version -eq $moduleName.Version} $moduleInfo = $moduleInfo | Sort-Object Version -Descending | Select-Object -First 1 Write-Verbose "Detecting dependencies for $($moduleInfo.Name)" Get-ModuleDependency -Module $moduleInfo -AsModuleInfo:$AsModuleInfo.IsPresent } } if ($AsModuleInfo.IsPresent) { return $Module } $Module.ModuleBase } |