pusher-js
Version:
Pusher Channels JavaScript library for browsers, React Native, NodeJS and web workers
32 lines (26 loc) • 857 B
text/typescript
import Logger from './logger';
import Pusher from './pusher';
import EventsDispatcher from './events/dispatcher';
export default class WatchlistFacade extends EventsDispatcher {
private pusher: Pusher;
public constructor(pusher: Pusher) {
super(function (eventName, data) {
Logger.debug(`No callbacks on watchlist events for ${eventName}`);
});
this.pusher = pusher;
this.bindWatchlistInternalEvent();
}
handleEvent(pusherEvent) {
pusherEvent.data.events.forEach((watchlistEvent) => {
this.emit(watchlistEvent.name, watchlistEvent);
});
}
private bindWatchlistInternalEvent() {
this.pusher.connection.bind('message', (pusherEvent) => {
var eventName = pusherEvent.event;
if (eventName === 'pusher_internal:watchlist_events') {
this.handleEvent(pusherEvent);
}
});
}
}