source: frontend/node_modules/@pmmmwh/react-refresh-webpack-plugin/sockets/utils/getWDSMetadata.js

Last change on this file was 9af201e, checked in by MBK <marija.karapandzova@…>, 12 days ago

Fix frontend appearance

  • Property mode set to 100644
File size: 979 bytes
Line 
1/**
2 * @typedef {Object} WDSMetaObj
3 * @property {boolean} enforceWs
4 * @property {number} version
5 */
6
7/**
8 * Derives WDS metadata from a compatible socket client.
9 * @param {Function} SocketClient A WDS socket client (SockJS/WebSocket).
10 * @returns {WDSMetaObj} The parsed WDS metadata object.
11 */
12function getWDSMetadata(SocketClient) {
13 let enforceWs = false;
14 if (
15 typeof SocketClient.name !== 'undefined' &&
16 SocketClient.name !== null &&
17 SocketClient.name.toLowerCase().includes('websocket')
18 ) {
19 enforceWs = true;
20 }
21
22 let version;
23 // WDS versions <=3.5.0
24 if (!('onMessage' in SocketClient.prototype)) {
25 version = 3;
26 } else {
27 // WDS versions >=3.5.0 <4
28 if (
29 'getClientPath' in SocketClient ||
30 Object.getPrototypeOf(SocketClient).name === 'BaseClient'
31 ) {
32 version = 3;
33 } else {
34 version = 4;
35 }
36 }
37
38 return {
39 enforceWs: enforceWs,
40 version: version,
41 };
42}
43
44module.exports = getWDSMetadata;
Note: See TracBrowser for help on using the repository browser.