| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 | 'use strict';var debug = function() {};if (process.env.NODE_ENV !== 'production') {  debug = require('debug')('sockjs-client:utils:transport');}module.exports = function(availableTransports) {  return {    filterToEnabled: function(transportsWhitelist, info) {      var transports = {        main: []      , facade: []      };      if (!transportsWhitelist) {        transportsWhitelist = [];      } else if (typeof transportsWhitelist === 'string') {        transportsWhitelist = [transportsWhitelist];      }      availableTransports.forEach(function(trans) {        if (!trans) {          return;        }        if (trans.transportName === 'websocket' && info.websocket === false) {          debug('disabled from server', 'websocket');          return;        }        if (transportsWhitelist.length &&            transportsWhitelist.indexOf(trans.transportName) === -1) {          debug('not in whitelist', trans.transportName);          return;        }        if (trans.enabled(info)) {          debug('enabled', trans.transportName);          transports.main.push(trans);          if (trans.facadeTransport) {            transports.facade.push(trans.facadeTransport);          }        } else {          debug('disabled', trans.transportName);        }      });      return transports;    }  };};
 |