modules/Core/StateManager.psm1
|
# StateManager Module # Handles the session state for the Spotify CLI, such as search results and device lists. # --- Private Module State --- # Stores track/episode results from the 'search' command $script:SessionTracks = @() # Stores device results from the 'devices' command $script:SessionDevices = @() # Stores album results from the 'search-albums' command $script:SessionAlbums = @() # Stores playlist results from the 'playlists' command $script:SessionPlaylists = @() # Stores queue tracks from the 'queue' command $script:SessionQueue = @() # Tracks what the last numbered list was (playlists, search, queue, albums) $script:LastListContext = "" # --- Public Functions --- # --- Track State Management --- function Get-SessionTracks { return $script:SessionTracks } function Set-SessionTracks { param($Tracks) $script:SessionTracks = $Tracks } function Clear-SessionTracks { $script:SessionTracks = @() } # --- Device State Management --- function Get-SessionDevices { return $script:SessionDevices } function Set-SessionDevices { param($Devices) $script:SessionDevices = $Devices } # --- Album State Management --- function Get-SessionAlbums { return $script:SessionAlbums } function Set-SessionAlbums { param($Albums) $script:SessionAlbums = $Albums } # --- Playlist State Management --- function Get-SessionPlaylists { return $script:SessionPlaylists } function Set-SessionPlaylists { param($Playlists) $script:SessionPlaylists = $Playlists } # --- Queue State Management --- function Get-SessionQueue { return $script:SessionQueue } function Set-SessionQueue { param($Queue) $script:SessionQueue = $Queue } # --- List Context Management --- function Get-LastListContext { return $script:LastListContext } function Set-LastListContext { param([string]$Context) $script:LastListContext = $Context } # --- Module Exports --- Export-ModuleMember -Function @( 'Get-SessionTracks', 'Set-SessionTracks', 'Clear-SessionTracks', 'Get-SessionDevices', 'Set-SessionDevices', 'Get-SessionAlbums', 'Set-SessionAlbums', 'Get-SessionPlaylists', 'Set-SessionPlaylists', 'Get-SessionQueue', 'Set-SessionQueue', 'Get-LastListContext', 'Set-LastListContext' ) |