| '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; | 
|     } | 
|   }; | 
| }; |