Skip to content

v3.0.0-alpha.0

Pre-release
Pre-release

Choose a tag to compare

@appellation appellation released this 24 Sep 17:47
· 68 commits to master since this release

Breaking changes

  • Reorganized Redis keys and key types: existing databases should be flushed
    • list has been renamed to next, np has been replaced with a simple pos indicator, and prev has been added to keep track of previous songs
  • Playlists will no longer advance when the player is stopped using the WebSocket

Additions

  • Queue#sort(predicate?: (a: string, b: string) => boolean): Promise<number> has been added; does not operate on previous songs; resolves with length of the list
  • Queue#move(from: number, to: number): Promise<string[]> has been added. Moves songs from one position to another by index; supports negative indices to wrap around list.; does not operate on previous songs Resolves with the new list.
  • Queue#shuffle(): Promise<string[]> has been added; resolves with the new list; does not operate on previous songs
  • Queue#clear now returns a native Promise instead of PromiseLike
  • Queue#tracks now returns a native Promise instead of PromiseLike
  • Queue#next now accepts negative numbers to advance the queue in reverse
  • NP typedef (represents a currently playing track) now will always have track and position properties.
  • QueueStore#redis has been extended to include new custom commands
    • lmove(key: string, from: number, to: number): Promise<string[]> moves elements in a list from one index to another
    • loverride(key: string, ...args: any[]): Promise<number> will override a key with new list data
    • lshuffle(key: string, seed: number): Promise<string[]> will shuffle elements of a list
    • multirpoplpush(source: string, dest: string, count: number): Promise<string[]> will rpoplpush multiple elements
  • Client now has an advanceBy(queue: Queue, endedTrack: string): number which will be called in any situation where a track is ended and an advancement count has not been provided. This is typically called when a track ends naturally and the queue needs to determine how many tracks to advance.
    • Client now accepts an advanceBy property in constructor options