You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							50 lines
						
					
					
						
							1.3 KiB
						
					
					
				
			
		
		
	
	
							50 lines
						
					
					
						
							1.3 KiB
						
					
					
				'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; | 
						|
    } | 
						|
  }; | 
						|
};
 | 
						|
 |