mirror of
https://github.com/idanoo/GoScrobble.git
synced 2024-11-23 00:45:16 +00:00
38 lines
1.2 KiB
JavaScript
38 lines
1.2 KiB
JavaScript
|
'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;
|