Publish-20240919-105900/PowerPAN/Private/Device/Initialize-PanDeviceDb.ps1

function Initialize-PanDeviceDb {
   <#
   .SYNOPSIS
   PowerPAN private helper function to initialize the PanDeviceDb.
   .DESCRIPTION
   PowerPAN private helper function to initialize the PanDeviceDb.
   .NOTES
   .INPUTS
   .OUTPUTS
   .EXAMPLE
   #>

   [CmdletBinding()]
   param(
   )

   # Propagate -Debug and -Verbose to this module function, https://tinyurl.com/y5dcbb34
   if($PSBoundParameters.Debug) { $DebugPreference = 'Continue' }
   if($PSBoundParameters.Verbose) { $VerbosePreference = 'Continue' }
   # Announce
   Write-Debug ($MyInvocation.MyCommand.Name + ':')

   # Initial import of the PanDeviceDb
   if(-not $Global:PanInitImportComplete) {
      Write-Debug ($MyInvocation.MyCommand.Name + ': Performing initial import')
      $Global:PanInitImportComplete = $true
      Import-PanDeviceDb

   }
   if( [String]::IsNullOrEmpty($Global:PanDeviceDb) ) {
      Write-Debug ($MyInvocation.MyCommand.Name + ': Initializing $Global:PanDeviceDb')
      # .NET Generic List provides under-the-hood efficiency during add/remove compared to PowerShell native arrays or ArrayList.
      $Global:PanDeviceDb = [System.Collections.Generic.List[PanDevice]]@()
   }
}