twitchonlinetracker
Version:
A library to help track streamers and fires an event if they go online.
99 lines (98 loc) • 3.06 kB
TypeScript
/// <reference types="node" />
import * as EventEmitter from 'events';
import { StreamData, StreamsApiEndPointOptions, TwitchOnlineTrackerOptions, UsersApiEndpointOptions } from './interfaces';
/**
* Twitch Online Tracker
*
* @class TwitchOnlineTracker
*/
export declare class TwitchOnlineTracker extends EventEmitter {
options: TwitchOnlineTrackerOptions;
tracked: Set<string>;
_cachedStreamData: StreamData[];
_loopIntervalId: any;
/**
*Creates an instance of TwitchOnlineTracker.
* @param {TwitchOnlineTrackerOptions} options Options to pass
* @memberof TwitchOnlineTracker
*/
constructor(options: TwitchOnlineTrackerOptions);
/**
* Log something to console.
*
* @param {*} rest
* @memberof TwitchOnlineTracker
*/
log(...rest: any[]): void;
/**
* Make a request on the Twitch Helix API. Used internally but can be used for something custom.
*
* @param {string} endpoint The endpoint, plus parameters.
* @returns The response JSON data, unaltered from Twitch.
* @memberof TwitchOnlineTracker
*/
api(endpoint: string): Promise<any>;
/**
* Make a /users Twitch API request.
*
* Either `id` or `login` must be used.
*
* @param {UsersApiEndpointOptions} params The API parameters.
* @returns The response JSON data, unaltered from Twitch.
* @memberof TwitchOnlineTracker
*/
users(params: UsersApiEndpointOptions): Promise<any>;
/**
* Make a /streams API request.
*
* @param {StreamsApiEndPointOptions} params The API parameters.
* @returns The response JSON data, unaltered from Twitch.
* @memberof TwitchOnlineTracker
*/
streams(params: StreamsApiEndPointOptions): Promise<any>;
/**
* Begin tracking a stream
*
* @param {string[]} loginNames An array of login names of streamers
* @memberof TwitchOnlineTracker
*/
track(loginNames: string[]): void;
/**
* Stop tracking a stream
*
* @param {string[]} loginNames An array of login names of streamers
* @memberof TwitchOnlineTracker
*/
untrack(loginNames: string[]): void;
/**
* Start making requests.
*
* @memberof TwitchOnlineTracker
*/
start(): this;
/**
* Stops polling.
*
* @memberof TwitchOnlineTracker
*/
stop(): void;
/**
* The internal loop.
*
* @memberof TwitchOnlineTracker
*/
_loop(): Promise<StreamData[]>;
/**
* Emit an event when a stream starts
* @fires TwitchOnlineTracker#started
* @memberof TwitchOnlineTracker
*/
_announce(streamData: StreamData): void;
/**
* Emit an event when a stream stops
* @fires TwitchOnlineTracker#offline
* @param {string} channelName the channel name of the stream that has stopped
* @memberof TwitchOnlineTracker
*/
_offline(channelName: string): void;
}