UNPKG

twitchonlinetracker

Version:

A library to help track streamers and fires an event if they go online.

99 lines (98 loc) 3.06 kB
/// <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; }