|
|
- 'use strict';
-
- function getSocketClientPath(options) {
- let ClientImplementation;
- let clientImplFound = true;
- switch (typeof options.transportMode.client) {
- case 'string':
- // could be 'sockjs', 'ws', or a path that should be required
- if (options.transportMode.client === 'sockjs') {
- ClientImplementation = require('../../client/clients/SockJSClient');
- } else if (options.transportMode.client === 'ws') {
- ClientImplementation = require('../../client/clients/WebsocketClient');
- } else {
- try {
- // eslint-disable-next-line import/no-dynamic-require
- ClientImplementation = require(options.transportMode.client);
- } catch (e) {
- clientImplFound = false;
- }
- }
- break;
- default:
- clientImplFound = false;
- }
-
- if (!clientImplFound) {
- throw new Error(
- "transportMode.client must be a string denoting a default implementation (e.g. 'sockjs', 'ws') or a full path to " +
- 'a JS file which exports a class extending BaseClient (webpack-dev-server/client-src/clients/BaseClient) ' +
- 'via require.resolve(...)'
- );
- }
-
- return ClientImplementation.getClientPath(options);
- }
-
- module.exports = getSocketClientPath;
|