pusher-js
Version:
Pusher Channels JavaScript library for browsers, React Native, NodeJS and web workers
29 lines (24 loc) • 699 B
text/typescript
import Strategy from './strategy';
import StrategyRunner from './strategy_runner';
/** Launches the substrategy and terminates on the first open connection.
*
* @param {Strategy} strategy
*/
export default class FirstConnectedStrategy implements Strategy {
strategy: Strategy;
constructor(strategy: Strategy) {
this.strategy = strategy;
}
isSupported(): boolean {
return this.strategy.isSupported();
}
connect(minPriority: number, callback: Function): StrategyRunner {
var runner = this.strategy.connect(minPriority, function(error, handshake) {
if (handshake) {
runner.abort();
}
callback(error, handshake);
});
return runner;
}
}