@selfcommunity/utils 0.1.7 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/{types → cjs}/index.d.ts +2 -2
- package/lib/cjs/index.d.ts.map +1 -0
- package/lib/cjs/index.js +35 -50
- package/lib/cjs/index.js.map +1 -0
- package/lib/{types → cjs}/utils/browser.d.ts +0 -0
- package/lib/{types → cjs}/utils/browser.d.ts.map +0 -0
- package/lib/cjs/utils/browser.js +62 -78
- package/lib/cjs/utils/browser.js.map +1 -0
- package/lib/{types → cjs}/utils/logger.d.ts +0 -0
- package/lib/{types → cjs}/utils/logger.d.ts.map +0 -0
- package/lib/cjs/utils/logger.js +18 -25
- package/lib/cjs/utils/logger.js.map +1 -0
- package/lib/{types → cjs}/utils/object.d.ts +0 -0
- package/lib/{types → cjs}/utils/object.d.ts.map +0 -0
- package/lib/cjs/utils/object.js +23 -29
- package/lib/cjs/utils/object.js.map +1 -0
- package/lib/{types → cjs}/utils/string.d.ts +0 -0
- package/lib/{types → cjs}/utils/string.d.ts.map +0 -0
- package/lib/cjs/utils/string.js +56 -65
- package/lib/cjs/utils/string.js.map +1 -0
- package/lib/{types → cjs}/utils/url.d.ts +0 -0
- package/lib/{types → cjs}/utils/url.d.ts.map +0 -0
- package/lib/cjs/utils/url.js +52 -77
- package/lib/cjs/utils/url.js.map +1 -0
- package/lib/{types → cjs}/utils/websocket.d.ts +0 -0
- package/lib/{types → cjs}/utils/websocket.d.ts.map +0 -0
- package/lib/cjs/utils/websocket.js +221 -284
- package/lib/cjs/utils/websocket.js.map +1 -0
- package/lib/cjs/utils/window.d.ts +5 -0
- package/lib/cjs/utils/window.d.ts.map +1 -0
- package/lib/cjs/utils/window.js +34 -32
- package/lib/cjs/utils/window.js.map +1 -0
- package/lib/esm/index.d.ts +12 -0
- package/lib/esm/index.d.ts.map +1 -0
- package/lib/esm/index.js +12 -51
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/utils/browser.d.ts +9 -0
- package/lib/esm/utils/browser.d.ts.map +1 -0
- package/lib/esm/utils/browser.js +61 -81
- package/lib/esm/utils/browser.js.map +1 -0
- package/lib/esm/utils/logger.d.ts +11 -0
- package/lib/esm/utils/logger.d.ts.map +1 -0
- package/lib/esm/utils/logger.js +17 -28
- package/lib/esm/utils/logger.js.map +1 -0
- package/lib/esm/utils/object.d.ts +13 -0
- package/lib/esm/utils/object.d.ts.map +1 -0
- package/lib/esm/utils/object.js +21 -32
- package/lib/esm/utils/object.js.map +1 -0
- package/lib/esm/utils/string.d.ts +43 -0
- package/lib/esm/utils/string.d.ts.map +1 -0
- package/lib/esm/utils/string.js +54 -73
- package/lib/esm/utils/string.js.map +1 -0
- package/lib/esm/utils/url.d.ts +33 -0
- package/lib/esm/utils/url.d.ts.map +1 -0
- package/lib/esm/utils/url.js +46 -80
- package/lib/esm/utils/url.js.map +1 -0
- package/lib/esm/utils/websocket.d.ts +177 -0
- package/lib/esm/utils/websocket.d.ts.map +1 -0
- package/lib/esm/utils/websocket.js +220 -286
- package/lib/esm/utils/websocket.js.map +1 -0
- package/lib/esm/utils/window.d.ts +5 -0
- package/lib/esm/utils/window.d.ts.map +1 -0
- package/lib/esm/utils/window.js +31 -36
- package/lib/esm/utils/window.js.map +1 -0
- package/lib/umd/utils.js +1 -1
- package/lib/umd/utils.js.map +1 -1
- package/package.json +5 -7
- package/lib/cjs/index.d.js +0 -2
- package/lib/esm/index.d.js +0 -2
- package/lib/types/index.d.ts.map +0 -1
- package/lib/types/tsconfig.build.tsbuildinfo +0 -1
|
@@ -1,307 +1,244 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
exports.default = void 0;
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* WSClientPropTypes interface
|
|
8
|
-
*/
|
|
9
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
3
|
/**
|
|
11
4
|
* WSClient: manage socket connection
|
|
12
5
|
* @param options
|
|
13
6
|
* @constructor
|
|
14
7
|
*/
|
|
15
8
|
class WSClient {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Constructor
|
|
11
|
+
* @param cfg
|
|
12
|
+
*/
|
|
13
|
+
constructor(cfg) {
|
|
14
|
+
this._attempts = 1;
|
|
15
|
+
this._heartbeatInterval = null;
|
|
16
|
+
this._missedHeartbeats = 0;
|
|
17
|
+
if (!this.isValidOptions(cfg)) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
this._cfg = Object.assign({}, { heartbeatMsg: null, debug: false, mustReconnect: true }, cfg);
|
|
21
|
+
this.connect();
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Get instance
|
|
25
|
+
*/
|
|
26
|
+
static getInstance(cfg) {
|
|
27
|
+
this._instance = this._instance || new WSClient(cfg);
|
|
28
|
+
return this._instance;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Connect
|
|
32
|
+
*/
|
|
33
|
+
connect() {
|
|
34
|
+
try {
|
|
35
|
+
if (this._ws && (this.isConnecting() || this.isConnected())) {
|
|
36
|
+
// There is already a connection
|
|
37
|
+
this._cfg.debug && console.info('Websocket is connecting or already connected.');
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
// Callback 'connecting' if exist
|
|
41
|
+
typeof this._cfg.connecting === 'function' && this._cfg.connecting();
|
|
42
|
+
this._cfg.debug && console.info(`Connecting to ${this._cfg.uri} ...`);
|
|
43
|
+
// Open the connection
|
|
44
|
+
this._ws = new WebSocket(this._cfg.uri, this._cfg.protocols);
|
|
45
|
+
this._ws.onopen = this.onOpen.bind(this);
|
|
46
|
+
this._ws.onmessage = this.onMessage.bind(this);
|
|
47
|
+
this._ws.onerror = this.onError.bind(this);
|
|
48
|
+
this._ws.onclose = this.onClose.bind(this);
|
|
49
|
+
this._timer = null;
|
|
50
|
+
}
|
|
51
|
+
catch (err) {
|
|
52
|
+
console.error(err);
|
|
53
|
+
this.tryToReconnect();
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Validate options
|
|
58
|
+
* @param cfg
|
|
59
|
+
*/
|
|
60
|
+
isValidOptions(cfg) {
|
|
61
|
+
let _error = false;
|
|
62
|
+
if (!cfg) {
|
|
63
|
+
console.error('Invalid WSClient options.');
|
|
64
|
+
return _error;
|
|
65
|
+
}
|
|
66
|
+
if (!cfg.uri) {
|
|
67
|
+
console.error('Invalid WSClient Uri options.');
|
|
68
|
+
_error = true;
|
|
69
|
+
}
|
|
70
|
+
if (cfg && cfg.connecting && !(typeof cfg.connecting === 'function')) {
|
|
71
|
+
console.error('Invalid WSClient connecting options.');
|
|
72
|
+
_error = true;
|
|
73
|
+
}
|
|
74
|
+
if (cfg && cfg.connected && !(typeof cfg.connected === 'function')) {
|
|
75
|
+
console.error('Invalid WSClient connected options.');
|
|
76
|
+
_error = true;
|
|
77
|
+
}
|
|
78
|
+
if (cfg && cfg.receiveMessage && !(typeof cfg.receiveMessage === 'function')) {
|
|
79
|
+
console.error('Invalid WSClient receiveMessage options.');
|
|
80
|
+
_error = true;
|
|
81
|
+
}
|
|
82
|
+
if (cfg && cfg.disconnected && !(typeof cfg.disconnected === 'function')) {
|
|
83
|
+
console.error('Invalid WSClient connecting options.');
|
|
84
|
+
_error = true;
|
|
85
|
+
}
|
|
86
|
+
if (cfg && cfg.heartbeatMsg && !(typeof cfg.heartbeatMsg === 'string')) {
|
|
87
|
+
console.error('Invalid WSClient heartbeatMsg options.');
|
|
88
|
+
_error = true;
|
|
89
|
+
}
|
|
90
|
+
if (cfg && cfg.debug && !(typeof cfg.debug === 'boolean')) {
|
|
91
|
+
console.error('Invalid WSClient debug options.');
|
|
92
|
+
_error = true;
|
|
93
|
+
}
|
|
94
|
+
return !_error;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Try to reconnect if previous connection failed
|
|
98
|
+
* Generate an interval, after that try to reconnect
|
|
99
|
+
*/
|
|
100
|
+
tryToReconnect() {
|
|
101
|
+
if (this._cfg.mustReconnect && !this._timer) {
|
|
102
|
+
this._cfg.debug && console.info(`Reconnecting...`);
|
|
103
|
+
let interval = this.generateInteval(this._attempts);
|
|
104
|
+
this._timer = setTimeout(this.reconnect.bind(this), interval);
|
|
105
|
+
}
|
|
27
106
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Get instance
|
|
38
|
-
*/
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
static getInstance(cfg) {
|
|
42
|
-
this._instance = this._instance || new WSClient(cfg);
|
|
43
|
-
return this._instance;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Connect
|
|
47
|
-
*/
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
connect() {
|
|
51
|
-
try {
|
|
52
|
-
if (this._ws && (this.isConnecting() || this.isConnected())) {
|
|
53
|
-
// There is already a connection
|
|
54
|
-
this._cfg.debug && console.info('Websocket is connecting or already connected.');
|
|
55
|
-
return;
|
|
56
|
-
} // Callback 'connecting' if exist
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
typeof this._cfg.connecting === 'function' && this._cfg.connecting();
|
|
60
|
-
this._cfg.debug && console.info(`Connecting to ${this._cfg.uri} ...`); // Open the connection
|
|
61
|
-
|
|
62
|
-
this._ws = new WebSocket(this._cfg.uri, this._cfg.protocols);
|
|
63
|
-
this._ws.onopen = this.onOpen.bind(this);
|
|
64
|
-
this._ws.onmessage = this.onMessage.bind(this);
|
|
65
|
-
this._ws.onerror = this.onError.bind(this);
|
|
66
|
-
this._ws.onclose = this.onClose.bind(this);
|
|
67
|
-
this._timer = null;
|
|
68
|
-
} catch (err) {
|
|
69
|
-
console.error(err);
|
|
70
|
-
this.tryToReconnect();
|
|
107
|
+
/**
|
|
108
|
+
* Reestablish the connection
|
|
109
|
+
* Increase the number of attempts
|
|
110
|
+
*/
|
|
111
|
+
reconnect() {
|
|
112
|
+
this._attempts++;
|
|
113
|
+
this.connect();
|
|
71
114
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
115
|
+
/**
|
|
116
|
+
* Send heartbeat every 5 seconds
|
|
117
|
+
* If missing more than 3 heartbeats close connection
|
|
118
|
+
*/
|
|
119
|
+
sendHeartbeat() {
|
|
120
|
+
try {
|
|
121
|
+
this._missedHeartbeats++;
|
|
122
|
+
if (this._missedHeartbeats > 3)
|
|
123
|
+
throw new Error('Too many missed heartbeats.');
|
|
124
|
+
this._ws.send(this._cfg.heartbeatMsg);
|
|
125
|
+
}
|
|
126
|
+
catch (e) {
|
|
127
|
+
clearInterval(this._heartbeatInterval);
|
|
128
|
+
this._heartbeatInterval = null;
|
|
129
|
+
this._cfg.debug && console.warn(`Closing connection. Reason: ${e.message}`);
|
|
130
|
+
if (!this.isClosing() && !this.isClosed()) {
|
|
131
|
+
this.close();
|
|
132
|
+
}
|
|
133
|
+
}
|
|
85
134
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
135
|
+
/**
|
|
136
|
+
* Established the new connection
|
|
137
|
+
* Reset this._attempts counter
|
|
138
|
+
*/
|
|
139
|
+
onOpen() {
|
|
140
|
+
this._cfg.debug && console.info('Connected!');
|
|
141
|
+
this._attempts = 1;
|
|
142
|
+
if (this._cfg.heartbeatMsg && this._heartbeatInterval === null) {
|
|
143
|
+
this._missedHeartbeats = 0;
|
|
144
|
+
this._heartbeatInterval = setInterval(this.sendHeartbeat.bind(this), 5000);
|
|
145
|
+
}
|
|
146
|
+
typeof this._cfg.connected === 'function' && this._cfg.connected();
|
|
90
147
|
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
148
|
+
/**
|
|
149
|
+
* Connection closed. Try to reconnect.
|
|
150
|
+
* @param evt
|
|
151
|
+
*/
|
|
152
|
+
onClose(evt) {
|
|
153
|
+
this._cfg.debug && console.info('Connection closed!');
|
|
154
|
+
typeof this._cfg.disconnected === 'function' && this._cfg.disconnected(evt);
|
|
155
|
+
this.tryToReconnect();
|
|
95
156
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
157
|
+
/**
|
|
158
|
+
* An error occured
|
|
159
|
+
* @param evt
|
|
160
|
+
*/
|
|
161
|
+
onError(evt) {
|
|
162
|
+
this._cfg.debug && console.error('Websocket connection is broken!');
|
|
163
|
+
this._cfg.debug && console.error(evt);
|
|
100
164
|
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
165
|
+
/**
|
|
166
|
+
* A message has arrived.
|
|
167
|
+
* If it is the heartbeat -> reset this._missedHeartbeats
|
|
168
|
+
* If it is data pass data to the callback
|
|
169
|
+
* @param evt
|
|
170
|
+
*/
|
|
171
|
+
onMessage(evt) {
|
|
172
|
+
if (this._cfg.heartbeatMsg && evt.data === this._cfg.heartbeatMsg) {
|
|
173
|
+
// reset the counter for missed heartbeats
|
|
174
|
+
this._missedHeartbeats = 0;
|
|
175
|
+
}
|
|
176
|
+
else if (typeof this._cfg.receiveMessage === 'function') {
|
|
177
|
+
return this._cfg.receiveMessage(evt.data);
|
|
178
|
+
}
|
|
105
179
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
180
|
+
/**
|
|
181
|
+
* Generate an interval that is randomly between 0 and 2^k - 1, where k is
|
|
182
|
+
* the number of connection attmpts, with a maximum interval of 30 seconds,
|
|
183
|
+
* so it starts at 0 - 1 seconds and maxes out at 0 - 30 seconds
|
|
184
|
+
*/
|
|
185
|
+
generateInteval(k) {
|
|
186
|
+
let maxInterval = (Math.pow(2, k) - 1) * 1000;
|
|
187
|
+
// If the generated interval is more than 30 seconds, truncate it down to 30 seconds.
|
|
188
|
+
if (maxInterval > 30 * 1000) {
|
|
189
|
+
maxInterval = 30 * 1000;
|
|
190
|
+
}
|
|
191
|
+
// generate the interval to a random number between 0 and the maxInterval determined from above
|
|
192
|
+
return Math.random() * maxInterval;
|
|
110
193
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
194
|
+
/**
|
|
195
|
+
* Send message
|
|
196
|
+
* @param message
|
|
197
|
+
*/
|
|
198
|
+
sendMessage(message) {
|
|
199
|
+
this._ws && this._ws.send(message);
|
|
115
200
|
}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
201
|
+
/**
|
|
202
|
+
* Get the ws state
|
|
203
|
+
*/
|
|
204
|
+
getState() {
|
|
205
|
+
return this._ws && this._ws.readyState;
|
|
120
206
|
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
* Generate an interval, after that try to reconnect
|
|
127
|
-
*/
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
tryToReconnect() {
|
|
131
|
-
if (this._cfg.mustReconnect && !this._timer) {
|
|
132
|
-
this._cfg.debug && console.info(`Reconnecting...`);
|
|
133
|
-
let interval = this.generateInteval(this._attempts);
|
|
134
|
-
this._timer = setTimeout(this.reconnect.bind(this), interval);
|
|
207
|
+
/**
|
|
208
|
+
* Check if ws is in connecting state
|
|
209
|
+
*/
|
|
210
|
+
isConnecting() {
|
|
211
|
+
return this._ws && this._ws.readyState === 0;
|
|
135
212
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
reconnect() {
|
|
144
|
-
this._attempts++;
|
|
145
|
-
this.connect();
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* Send heartbeat every 5 seconds
|
|
149
|
-
* If missing more than 3 heartbeats close connection
|
|
150
|
-
*/
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
sendHeartbeat() {
|
|
154
|
-
try {
|
|
155
|
-
this._missedHeartbeats++;
|
|
156
|
-
if (this._missedHeartbeats > 3) throw new Error('Too many missed heartbeats.');
|
|
157
|
-
|
|
158
|
-
this._ws.send(this._cfg.heartbeatMsg);
|
|
159
|
-
} catch (e) {
|
|
160
|
-
clearInterval(this._heartbeatInterval);
|
|
161
|
-
this._heartbeatInterval = null;
|
|
162
|
-
this._cfg.debug && console.warn(`Closing connection. Reason: ${e.message}`);
|
|
163
|
-
|
|
164
|
-
if (!this.isClosing() && !this.isClosed()) {
|
|
165
|
-
this.close();
|
|
166
|
-
}
|
|
213
|
+
/**
|
|
214
|
+
* Check if ws is connected
|
|
215
|
+
*/
|
|
216
|
+
isConnected() {
|
|
217
|
+
return this._ws && this._ws.readyState === 1;
|
|
167
218
|
}
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
onOpen() {
|
|
176
|
-
this._cfg.debug && console.info('Connected!');
|
|
177
|
-
this._attempts = 1;
|
|
178
|
-
|
|
179
|
-
if (this._cfg.heartbeatMsg && this._heartbeatInterval === null) {
|
|
180
|
-
this._missedHeartbeats = 0;
|
|
181
|
-
this._heartbeatInterval = setInterval(this.sendHeartbeat.bind(this), 5000);
|
|
219
|
+
/**
|
|
220
|
+
* Check if ws is in closing state
|
|
221
|
+
*/
|
|
222
|
+
isClosing() {
|
|
223
|
+
return this._ws && this._ws.readyState === 2;
|
|
182
224
|
}
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
* @param evt
|
|
189
|
-
*/
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
onClose(evt) {
|
|
193
|
-
this._cfg.debug && console.info('Connection closed!');
|
|
194
|
-
typeof this._cfg.disconnected === 'function' && this._cfg.disconnected(evt);
|
|
195
|
-
this.tryToReconnect();
|
|
196
|
-
}
|
|
197
|
-
/**
|
|
198
|
-
* An error occured
|
|
199
|
-
* @param evt
|
|
200
|
-
*/
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
onError(evt) {
|
|
204
|
-
this._cfg.debug && console.error('Websocket connection is broken!');
|
|
205
|
-
this._cfg.debug && console.error(evt);
|
|
206
|
-
}
|
|
207
|
-
/**
|
|
208
|
-
* A message has arrived.
|
|
209
|
-
* If it is the heartbeat -> reset this._missedHeartbeats
|
|
210
|
-
* If it is data pass data to the callback
|
|
211
|
-
* @param evt
|
|
212
|
-
*/
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
onMessage(evt) {
|
|
216
|
-
if (this._cfg.heartbeatMsg && evt.data === this._cfg.heartbeatMsg) {
|
|
217
|
-
// reset the counter for missed heartbeats
|
|
218
|
-
this._missedHeartbeats = 0;
|
|
219
|
-
} else if (typeof this._cfg.receiveMessage === 'function') {
|
|
220
|
-
return this._cfg.receiveMessage(evt.data);
|
|
225
|
+
/**
|
|
226
|
+
* Check if ws is closed
|
|
227
|
+
*/
|
|
228
|
+
isClosed() {
|
|
229
|
+
return this._ws && this._ws.readyState === 3;
|
|
221
230
|
}
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
if (maxInterval > 30 * 1000) {
|
|
234
|
-
maxInterval = 30 * 1000;
|
|
235
|
-
} // generate the interval to a random number between 0 and the maxInterval determined from above
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
return Math.random() * maxInterval;
|
|
239
|
-
}
|
|
240
|
-
/**
|
|
241
|
-
* Send message
|
|
242
|
-
* @param message
|
|
243
|
-
*/
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
sendMessage(message) {
|
|
247
|
-
this._ws && this._ws.send(message);
|
|
248
|
-
}
|
|
249
|
-
/**
|
|
250
|
-
* Get the ws state
|
|
251
|
-
*/
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
getState() {
|
|
255
|
-
return this._ws && this._ws.readyState;
|
|
256
|
-
}
|
|
257
|
-
/**
|
|
258
|
-
* Check if ws is in connecting state
|
|
259
|
-
*/
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
isConnecting() {
|
|
263
|
-
return this._ws && this._ws.readyState === 0;
|
|
264
|
-
}
|
|
265
|
-
/**
|
|
266
|
-
* Check if ws is connected
|
|
267
|
-
*/
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
isConnected() {
|
|
271
|
-
return this._ws && this._ws.readyState === 1;
|
|
272
|
-
}
|
|
273
|
-
/**
|
|
274
|
-
* Check if ws is in closing state
|
|
275
|
-
*/
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
isClosing() {
|
|
279
|
-
return this._ws && this._ws.readyState === 2;
|
|
280
|
-
}
|
|
281
|
-
/**
|
|
282
|
-
* Check if ws is closed
|
|
283
|
-
*/
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
isClosed() {
|
|
287
|
-
return this._ws && this._ws.readyState === 3;
|
|
288
|
-
}
|
|
289
|
-
/**
|
|
290
|
-
* Close the connection
|
|
291
|
-
*/
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
close() {
|
|
295
|
-
clearInterval(this._heartbeatInterval);
|
|
296
|
-
this._cfg.mustReconnect = false;
|
|
297
|
-
|
|
298
|
-
if (!this.isClosing() || !this.isClosed()) {
|
|
299
|
-
this._ws.close();
|
|
300
|
-
|
|
301
|
-
this._cfg.debug && console.error('Websocket closed.');
|
|
231
|
+
/**
|
|
232
|
+
* Close the connection
|
|
233
|
+
*/
|
|
234
|
+
close() {
|
|
235
|
+
clearInterval(this._heartbeatInterval);
|
|
236
|
+
this._cfg.mustReconnect = false;
|
|
237
|
+
if (!this.isClosing() || !this.isClosed()) {
|
|
238
|
+
this._ws.close();
|
|
239
|
+
this._cfg.debug && console.error('Websocket closed.');
|
|
240
|
+
}
|
|
302
241
|
}
|
|
303
|
-
}
|
|
304
|
-
|
|
305
242
|
}
|
|
306
|
-
|
|
307
|
-
|
|
243
|
+
exports.default = WSClient;
|
|
244
|
+
//# sourceMappingURL=websocket.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../src/utils/websocket.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare function getWindowWidth(): number;
|
|
2
|
+
export declare function getWindowHeight(): number;
|
|
3
|
+
export declare function getHighestSafeWindowContext(self?: Window & typeof globalThis): any;
|
|
4
|
+
export declare function isClientSideRendering(): boolean;
|
|
5
|
+
//# sourceMappingURL=window.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"window.d.ts","sourceRoot":"","sources":["../../../src/utils/window.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,WAE7B;AAED,wBAAgB,eAAe,WAE9B;AAYD,wBAAgB,2BAA2B,CAAC,IAAI,6BAAqB,OAiBpE;AAED,wBAAgB,qBAAqB,YAEpC"}
|
package/lib/cjs/utils/window.js
CHANGED
|
@@ -1,41 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.
|
|
4
|
-
exports.getHighestSafeWindowContext = getHighestSafeWindowContext;
|
|
5
|
-
exports.getWindowHeight = getWindowHeight;
|
|
6
|
-
exports.getWindowWidth = getWindowWidth;
|
|
7
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isClientSideRendering = exports.getHighestSafeWindowContext = exports.getWindowHeight = exports.getWindowWidth = void 0;
|
|
8
4
|
function getWindowWidth() {
|
|
9
|
-
|
|
5
|
+
return typeof global.window !== 'undefined' ? global.window.innerWidth : 0;
|
|
10
6
|
}
|
|
11
|
-
|
|
7
|
+
exports.getWindowWidth = getWindowWidth;
|
|
12
8
|
function getWindowHeight() {
|
|
13
|
-
|
|
9
|
+
return typeof global.window !== 'undefined' ? global.window.innerHeight : 0;
|
|
14
10
|
}
|
|
15
|
-
|
|
11
|
+
exports.getWindowHeight = getWindowHeight;
|
|
16
12
|
const isCrossOriginFrame = () => {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
13
|
+
try {
|
|
14
|
+
return global.window.location.hostname !== global.window.parent.location.hostname;
|
|
15
|
+
}
|
|
16
|
+
catch (e) {
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
// Get the highest window context that isn't cross-origin
|
|
23
21
|
// (When in an iframe)
|
|
24
|
-
|
|
25
|
-
|
|
26
22
|
function getHighestSafeWindowContext(self = global.window.self) {
|
|
27
|
-
|
|
28
|
-
|
|
23
|
+
// If we reached the top level, return self
|
|
24
|
+
if (self === global.window.top) {
|
|
25
|
+
return self;
|
|
26
|
+
}
|
|
27
|
+
// If parent is the same origin, we can move up one context
|
|
28
|
+
// Reference: https://stackoverflow.com/a/21965342/1601953
|
|
29
|
+
if (!isCrossOriginFrame()) {
|
|
30
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-ignore
|
|
31
|
+
// @ts-ignore
|
|
32
|
+
return getHighestSafeWindowContext(self.parent);
|
|
33
|
+
}
|
|
34
|
+
// If a different origin, we consider the current level
|
|
35
|
+
// as the top reachable one
|
|
29
36
|
return self;
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
// as the top reachable one
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
return self;
|
|
41
|
-
}
|
|
37
|
+
}
|
|
38
|
+
exports.getHighestSafeWindowContext = getHighestSafeWindowContext;
|
|
39
|
+
function isClientSideRendering() {
|
|
40
|
+
return typeof window !== 'undefined';
|
|
41
|
+
}
|
|
42
|
+
exports.isClientSideRendering = isClientSideRendering;
|
|
43
|
+
//# sourceMappingURL=window.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"window.js","sourceRoot":"","sources":["../../../src/utils/window.ts"],"names":[],"mappings":";;;AAAA,SAAgB,cAAc;IAC5B,OAAO,OAAO,MAAM,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7E,CAAC;AAFD,wCAEC;AAED,SAAgB,eAAe;IAC7B,OAAO,OAAO,MAAM,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9E,CAAC;AAFD,0CAEC;AAED,MAAM,kBAAkB,GAAG,GAAG,EAAE;IAC9B,IAAI;QACF,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;KACnF;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,IAAI,CAAC;KACb;AACH,CAAC,CAAC;AAEF,yDAAyD;AACzD,sBAAsB;AACtB,SAAgB,2BAA2B,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI;IACnE,2CAA2C;IAC3C,IAAI,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;QAC9B,OAAO,IAAI,CAAC;KACb;IAED,2DAA2D;IAC3D,0DAA0D;IAC1D,IAAI,CAAC,kBAAkB,EAAE,EAAE;QACzB,4DAA4D;QAC5D,aAAa;QACb,OAAO,2BAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACjD;IAED,uDAAuD;IACvD,2BAA2B;IAC3B,OAAO,IAAI,CAAC;AACd,CAAC;AAjBD,kEAiBC;AAED,SAAgB,qBAAqB;IACnC,OAAO,OAAO,MAAM,KAAK,WAAW,CAAC;AACvC,CAAC;AAFD,sDAEC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { capitalize, isString, stripHtml, camelCase, copyTextToClipboard, fallbackCopyTextToClipboard, random } from './utils/string';
|
|
2
|
+
import { isValidUrl, isValidUrls, urlReplacer, getDomain, appendURLSearchParams, urlB64ToUint8Array } from './utils/url';
|
|
3
|
+
import { getHighestSafeWindowContext, getWindowWidth, getWindowHeight, isClientSideRendering } from './utils/window';
|
|
4
|
+
import { mergeDeep, isObject } from './utils/object';
|
|
5
|
+
import { loadVersionBrowser } from './utils/browser';
|
|
6
|
+
import { Logger } from './utils/logger';
|
|
7
|
+
import WSClient, { WSClientType, WSClientPropTypes } from './utils/websocket';
|
|
8
|
+
/**
|
|
9
|
+
* Export all utilities
|
|
10
|
+
*/
|
|
11
|
+
export { capitalize, isString, stripHtml, camelCase, copyTextToClipboard, fallbackCopyTextToClipboard, random, isValidUrl, isValidUrls, urlReplacer, getDomain, appendURLSearchParams, urlB64ToUint8Array, getHighestSafeWindowContext, getWindowWidth, getWindowHeight, isClientSideRendering, Logger, mergeDeep, isObject, WSClient, WSClientType, WSClientPropTypes, loadVersionBrowser };
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,EAAC,MAAM,gBAAgB,CAAC;AACpI,OAAO,EAAC,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,qBAAqB,EAAE,kBAAkB,EAAC,MAAM,aAAa,CAAC;AACvH,OAAO,EAAC,2BAA2B,EAAE,cAAc,EAAE,eAAe,EAAE,qBAAqB,EAAC,MAAM,gBAAgB,CAAC;AACnH,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAC,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAC,MAAM,EAAC,MAAM,gBAAgB,CAAC;AACtC,OAAO,QAAQ,EAAE,EAAC,YAAY,EAAE,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAE5E;;GAEG;AACH,OAAO,EACL,UAAU,EACV,QAAQ,EACR,SAAS,EACT,SAAS,EACT,mBAAmB,EACnB,2BAA2B,EAC3B,MAAM,EACN,UAAU,EACV,WAAW,EACX,WAAW,EACX,SAAS,EACT,qBAAqB,EACrB,kBAAkB,EAClB,2BAA2B,EAC3B,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,MAAM,EACN,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EACnB,CAAC"}
|