pusher-js
Version:
Pusher JavaScript library for browser, React Native, NodeJS and web workers
33 lines (27 loc) • 734 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;
}
}