Skip to content

Commit

Permalink
Add decarations
Browse files Browse the repository at this point in the history
  • Loading branch information
Ovenoboyo committed Oct 24, 2023
1 parent e54ecca commit 0fe5512
Show file tree
Hide file tree
Showing 10 changed files with 406 additions and 2 deletions.
39 changes: 39 additions & 0 deletions dist/genericPlayer.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
/// <reference types="node" />
import EventEmitter from "events";
import { TokenHandler } from "./tokenHandler";
import { PositionHolder } from "./positionHolder";
import { ConstructorConfig, Token, CanvazResponse, LyricsResponse } from "./types";
import { PlayerEvent, PlayerEventTypes, TokenScope } from "./types";
export declare function safe_execution(_: unknown, propertyKey: string, descriptor: TypedPropertyDescriptor<any>): TypedPropertyDescriptor<any>;
export declare abstract class GenericPlayer {
protected tokenHandler: TokenHandler;
protected _positionHolder: PositionHolder;
eventEmitter: EventEmitter;
protected playerInstance: PlayerNativeObject | undefined;
protected _volume: number;
protected device_id: string;
protected _isInitialized: boolean;
get isInitialized(): boolean;
protected abstract onPlayerInitialized(): void;
private validateConfig;
constructor(config: ConstructorConfig, playerConstructMethod?: "create_player" | "create_player_spirc");
private player_event_callback;
private registerListeners;
on: <T extends PlayerEventTypes>(event: T, callback: (event: PlayerEvent<T>) => void) => EventEmitter;
off: <T extends PlayerEventTypes>(event: T, callback: (event: PlayerEvent<T>) => void) => EventEmitter;
addListener<T extends PlayerEventTypes>(event: T, callback: (event: PlayerEvent<T>) => void): EventEmitter;
removeListener<T extends PlayerEventTypes>(event: T, callback: (event: PlayerEvent<T>) => void): EventEmitter;
once<T extends PlayerEventTypes>(event: T, callback: (event: PlayerEvent<T>) => void): EventEmitter;
removeAllListeners(): void;
getDeviceId(): string;
protected validateUri(val: string): [string | undefined, string | undefined];
abstract setVolume(volume: number, raw?: boolean): Promise<void>;
abstract load(trackURIs: string | string[], autoPlay?: boolean, startPosition?: number): Promise<void>;
abstract getToken(...scopes: TokenScope[]): Promise<Token | undefined>;
abstract getVolume(raw?: boolean): number;
abstract seek(posMs: number): Promise<void>;
abstract close(): Promise<void>;
abstract getCurrentPosition(): number;
abstract getCanvas(track: string): Promise<CanvazResponse | undefined>;
abstract getLyrics(track: string): Promise<LyricsResponse | undefined>;
}
3 changes: 3 additions & 0 deletions dist/index.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
export * from "./spirc";
export * from "./player";
export * from "./types";
63 changes: 63 additions & 0 deletions dist/player.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
import { TokenScope } from "./types";
import { GenericPlayer } from "./genericPlayer";
export declare class SpotifyPlayer extends GenericPlayer {
protected onPlayerInitialized(): void;
/**
* Set player state to play
*/
play(): Promise<void>;
/**
* Set player state to paused
*/
pause(): Promise<void>;
/**
* Seek current song to position
* @param posMs position in milliseconds
*/
seek(posMs: number): Promise<void>;
/**
* Clear all listeners and close player
*/
close(): Promise<void>;
/**
* Get current position of player
* @returns current position in milliseconds
*/
getCurrentPosition(): number;
/**
* Set volume in percentage or uint16
* @param volume: Volume in percentage or uint16
* @param raw if true, volume is set in uint16. Otherwise percentage. (Default: false)
*/
setVolume(volume: number, raw?: boolean): Promise<void>;
/**
* Returns volume in percentage or uint16
* @param raw If true, returns volume in uint16. Otherwise percentage
* @returns volume in percentage or uint16
*/
getVolume(raw?: boolean): number;
/**
* Loads a track by Spotify URI or URL
* @param trackURI spotify URI or URL of track to be loaded. (Eg. spotify:track:4PTG3Z6ehGkBFwjybzWkR8)
* @param autoplay if true, track will start playing immediately after being loaded. (Default: false)
*/
load(trackURIs: string | string[], autoPlay?: boolean, startPosition?: number): Promise<void>;
/**
* Get spotify access token for logged in account
* @param scopes scopes to get token for. (https://developer.spotify.com/documentation/general/guides/authorization/scopes/)
* @returns token
*/
getToken(...scopes: TokenScope[]): Promise<any>;
/**
* Returns spotify canvas URL for track
* @param track track URI or URL to get canvas for
* @returns Spotify canvas public URL
*/
getCanvas(track: string): Promise<import("./types").CanvazResponse | undefined>;
/**
* Get lyrics for spotify track
* @param track Spotify track URI or URL
* @returns
*/
getLyrics(track: string): Promise<any>;
}
9 changes: 9 additions & 0 deletions dist/positionHolder.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
export declare class PositionHolder {
position: number;
private positionListener;
private updateInterval;
callback?: (time: number) => void;
constructor(updateInterval?: number);
setListener(): void;
clearListener(): void;
}
73 changes: 73 additions & 0 deletions dist/spirc.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
import { ConstructorConfig, LyricsResponse, Token } from "./types";
import { TokenScope } from "./types";
import { GenericPlayer } from "./genericPlayer";
/**
* Wrapper for librespot SPIRC player
*/
export declare class SpotifyPlayerSpirc extends GenericPlayer {
protected onPlayerInitialized(): void;
constructor(config: ConstructorConfig);
/**
* Set player state to play
*/
play(): Promise<void>;
/**
* Set player state to paused
*/
pause(): Promise<void>;
/**
* Seek current song to position
* @param posMs position in milliseconds
*/
seek(posMs: number): Promise<void>;
/**
* Clear all listeners and close player
*/
close(): Promise<void>;
/**
* Get current position of player
* @returns current position in milliseconds
*/
getCurrentPosition(): number;
/**
* Set volume in percentage or uint16
* @param volume: Volume in percentage or uint16
* @param raw if true, volume is set in uint16. Otherwise percentage. (Default: false)
*/
setVolume(volume: number, raw?: boolean): Promise<void>;
/**
* Returns volume in percentage or uint16
* @param raw If true, returns volume in uint16. Otherwise percentage
* @returns volume in percentage or uint16
*/
getVolume(raw?: boolean): number;
/**
* Loads a track by Spotify URI or URL
* @param trackURI spotify URI or URL of track to be loaded. (Eg. spotify:track:4PTG3Z6ehGkBFwjybzWkR8)
* @param autoplay if true, track will start playing immediately after being loaded. (Default: false)
*/
load(trackURI: string, autoplay?: boolean): Promise<void>;
/**
* Adds track to queue
* @param trackURI spotify URI or URL of track to be added to queue. (Eg. spotify:track:4PTG3Z6ehGkBFwjybzWkR8)
*/
addToQueue(trackURI: string): Promise<void>;
/**
* Get spotify access token for logged in account
* @param scopes scopes to get token for. (https://developer.spotify.com/documentation/general/guides/authorization/scopes/)
* @returns token
*/
getToken(...scopes: TokenScope[]): Promise<Token>;
/**
* Returns spotify canvas URL for track
* @param track track URI or URL to get canvas for
* @returns Spotify canvas public URL
*/
getCanvas(track: string): Promise<import("./types").CanvazResponse | undefined>;
/**
* Get lyrics for spotify track
* @param track Spotify track URI or URL
* @returns
*/
getLyrics(track: string): Promise<LyricsResponse | undefined>;
}
11 changes: 11 additions & 0 deletions dist/tokenHandler.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { Token, TokenScope } from "./types";
export declare class TokenHandler {
private tokenMap;
private filePath?;
private readFilePromise;
constructor(filePath?: string);
private dumpFile;
private readFile;
addToken(token: Token): Promise<void>;
getToken(scopes: TokenScope[]): Promise<Token | undefined>;
}
Loading

0 comments on commit 0fe5512

Please sign in to comment.