| 123456789101112131415161718192021222324252627282930313233343536373839404142 | 'use strict';function getSocketServerImplementation(options) {  let ServerImplementation;  let serverImplFound = true;  switch (typeof options.transportMode.server) {    case 'string':      // could be 'sockjs', in the future 'ws', or a path that should be required      if (options.transportMode.server === 'sockjs') {        ServerImplementation = require('../servers/SockJSServer');      } else if (options.transportMode.server === 'ws') {        ServerImplementation = require('../servers/WebsocketServer');      } else {        try {          // eslint-disable-next-line import/no-dynamic-require          ServerImplementation = require(options.transportMode.server);        } catch (e) {          serverImplFound = false;        }      }      break;    case 'function':      // potentially do more checks here to confirm that the user implemented this properlly      // since errors could be difficult to understand      ServerImplementation = options.transportMode.server;      break;    default:      serverImplFound = false;  }  if (!serverImplFound) {    throw new Error(      "transportMode.server must be a string denoting a default implementation (e.g. 'sockjs', 'ws'), a full path to " +        'a JS file which exports a class extending BaseServer (webpack-dev-server/lib/servers/BaseServer) ' +        'via require.resolve(...), or the class itself which extends BaseServer'    );  }  return ServerImplementation;}module.exports = getSocketServerImplementation;
 |