websocket-ts 1.1.1 → 2.1.1
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/LICENSE +1 -1
- package/README.md +157 -93
- package/package.json +27 -14
- package/src/backoff/backoff.ts +21 -13
- package/src/backoff/constantbackoff.ts +29 -11
- package/src/backoff/exponentialbackoff.ts +68 -28
- package/src/backoff/linearbackoff.ts +77 -26
- package/src/index.ts +23 -9
- package/src/queue/array_queue.ts +41 -0
- package/src/queue/queue.ts +46 -0
- package/src/queue/ring_queue.ts +69 -0
- package/src/websocket.ts +463 -138
- package/src/websocket_buffer.ts +18 -0
- package/src/websocket_builder.ts +274 -0
- package/src/websocket_event.ts +88 -0
- package/src/websocket_options.ts +23 -0
- package/src/websocket_retry_options.ts +22 -0
- package/{tsconfig.json → tsconfig.cjs.json} +8 -8
- package/tsconfig.esm.json +71 -0
- package/jest.config.js +0 -9
- package/lib/backoff/backoff.d.ts +0 -18
- package/lib/backoff/backoff.d.ts.map +0 -1
- package/lib/backoff/backoff.js +0 -3
- package/lib/backoff/backoff.js.map +0 -1
- package/lib/backoff/constantbackoff.d.ts +0 -11
- package/lib/backoff/constantbackoff.d.ts.map +0 -1
- package/lib/backoff/constantbackoff.js +0 -20
- package/lib/backoff/constantbackoff.js.map +0 -1
- package/lib/backoff/exponentialbackoff.d.ts +0 -22
- package/lib/backoff/exponentialbackoff.d.ts.map +0 -1
- package/lib/backoff/exponentialbackoff.js +0 -35
- package/lib/backoff/exponentialbackoff.js.map +0 -1
- package/lib/backoff/linearbackoff.d.ts +0 -19
- package/lib/backoff/linearbackoff.d.ts.map +0 -1
- package/lib/backoff/linearbackoff.js +0 -34
- package/lib/backoff/linearbackoff.js.map +0 -1
- package/lib/buffer/buffer.d.ts +0 -41
- package/lib/buffer/buffer.d.ts.map +0 -1
- package/lib/buffer/buffer.js +0 -3
- package/lib/buffer/buffer.js.map +0 -1
- package/lib/buffer/lrubuffer.d.ts +0 -24
- package/lib/buffer/lrubuffer.d.ts.map +0 -1
- package/lib/buffer/lrubuffer.js +0 -76
- package/lib/buffer/lrubuffer.js.map +0 -1
- package/lib/buffer/timebuffer.d.ts +0 -25
- package/lib/buffer/timebuffer.d.ts.map +0 -1
- package/lib/buffer/timebuffer.js +0 -92
- package/lib/buffer/timebuffer.js.map +0 -1
- package/lib/index.d.ts +0 -10
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js +0 -22
- package/lib/index.js.map +0 -1
- package/lib/websocket.d.ts +0 -47
- package/lib/websocket.d.ts.map +0 -1
- package/lib/websocket.js +0 -120
- package/lib/websocket.js.map +0 -1
- package/lib/websocketBuilder.d.ts +0 -32
- package/lib/websocketBuilder.d.ts.map +0 -1
- package/lib/websocketBuilder.js +0 -68
- package/lib/websocketBuilder.js.map +0 -1
- package/src/buffer/buffer.ts +0 -45
- package/src/buffer/lrubuffer.ts +0 -80
- package/src/buffer/timebuffer.ts +0 -105
- package/src/websocketBuilder.ts +0 -98
- package/test/backoff/constantbackoff.test.ts +0 -21
- package/test/backoff/exponentialbackoff.test.ts +0 -13
- package/test/backoff/linearbackoff.test.ts +0 -32
- package/test/buffer/common.ts +0 -10
- package/test/buffer/lrubuffer.test.ts +0 -128
- package/test/buffer/timebuffer.test.ts +0 -115
- package/test/websocket.test.ts +0 -341
- package/test/websocketBuilder.test.ts +0 -36
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"exponentialbackoff.js","sourceRoot":"","sources":["../../src/backoff/exponentialbackoff.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;;GAUG;AACH;IAMI,4BAAY,OAAe,EAAE,MAAc;QACvC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAChC,CAAC;IAED,iCAAI,GAAJ;QACI,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE;YAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACpC,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,kCAAK,GAAL;QACI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAChC,CAAC;IACL,yBAAC;AAAD,CAAC,AAxBD,IAwBC;AAxBY,gDAAkB"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { Backoff } from "./backoff";
|
|
2
|
-
/**
|
|
3
|
-
* LinearBackoff increases the backoff-time by a constant number with
|
|
4
|
-
* every step. An optional maximum can be provided as an upper bound
|
|
5
|
-
* to the returned backoff.
|
|
6
|
-
*
|
|
7
|
-
* Example: for initial=0, increment=2000, maximum=8000 the Linear-
|
|
8
|
-
* Backoff will produce the series [0, 2000, 4000, 6000, 8000].
|
|
9
|
-
*/
|
|
10
|
-
export declare class LinearBackoff implements Backoff {
|
|
11
|
-
private readonly initial;
|
|
12
|
-
private readonly increment;
|
|
13
|
-
private readonly maximum?;
|
|
14
|
-
private current;
|
|
15
|
-
constructor(initial: number, increment: number, maximum?: number);
|
|
16
|
-
next(): number;
|
|
17
|
-
reset(): void;
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=linearbackoff.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"linearbackoff.d.ts","sourceRoot":"","sources":["../../src/backoff/linearbackoff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAElC;;;;;;;GAOG;AACH,qBAAa,aAAc,YAAW,OAAO;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAS;IAClC,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAOhE,IAAI;IAUJ,KAAK;CAGR"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.LinearBackoff = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* LinearBackoff increases the backoff-time by a constant number with
|
|
6
|
-
* every step. An optional maximum can be provided as an upper bound
|
|
7
|
-
* to the returned backoff.
|
|
8
|
-
*
|
|
9
|
-
* Example: for initial=0, increment=2000, maximum=8000 the Linear-
|
|
10
|
-
* Backoff will produce the series [0, 2000, 4000, 6000, 8000].
|
|
11
|
-
*/
|
|
12
|
-
var LinearBackoff = /** @class */ (function () {
|
|
13
|
-
function LinearBackoff(initial, increment, maximum) {
|
|
14
|
-
this.initial = initial;
|
|
15
|
-
this.increment = increment;
|
|
16
|
-
this.maximum = maximum;
|
|
17
|
-
this.current = this.initial;
|
|
18
|
-
}
|
|
19
|
-
LinearBackoff.prototype.next = function () {
|
|
20
|
-
var backoff = this.current;
|
|
21
|
-
var next = this.current + this.increment;
|
|
22
|
-
if (this.maximum === undefined)
|
|
23
|
-
this.current = next;
|
|
24
|
-
else if (next <= this.maximum)
|
|
25
|
-
this.current = next;
|
|
26
|
-
return backoff;
|
|
27
|
-
};
|
|
28
|
-
LinearBackoff.prototype.reset = function () {
|
|
29
|
-
this.current = this.initial;
|
|
30
|
-
};
|
|
31
|
-
return LinearBackoff;
|
|
32
|
-
}());
|
|
33
|
-
exports.LinearBackoff = LinearBackoff;
|
|
34
|
-
//# sourceMappingURL=linearbackoff.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"linearbackoff.js","sourceRoot":"","sources":["../../src/backoff/linearbackoff.ts"],"names":[],"mappings":";;;AAEA;;;;;;;GAOG;AACH;IAMI,uBAAY,OAAe,EAAE,SAAiB,EAAE,OAAgB;QAC5D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAChC,CAAC;IAED,4BAAI,GAAJ;QACI,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAM,IAAI,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3C,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;YAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;aACnB,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO;YACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACxB,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,6BAAK,GAAL;QACI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAChC,CAAC;IACL,oBAAC;AAAD,CAAC,AA1BD,IA0BC;AA1BY,sCAAa"}
|
package/lib/buffer/buffer.d.ts
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Temporary container for generic elements.
|
|
3
|
-
*/
|
|
4
|
-
export interface Buffer<E> {
|
|
5
|
-
/**
|
|
6
|
-
* Length of the buffer, the count of elements
|
|
7
|
-
* that can be read from the buffer.
|
|
8
|
-
* @return the length of the buffer
|
|
9
|
-
*/
|
|
10
|
-
len(): number;
|
|
11
|
-
/**
|
|
12
|
-
* Capacity of the buffer, the total amount of
|
|
13
|
-
* elements the buffer can contain.
|
|
14
|
-
* @return the capacity of the buffer
|
|
15
|
-
*/
|
|
16
|
-
cap(): number;
|
|
17
|
-
/**
|
|
18
|
-
* Reads elements from the buffer.
|
|
19
|
-
* @param es array to read into from the buffer
|
|
20
|
-
* @return the count of elements that were read
|
|
21
|
-
*/
|
|
22
|
-
read(es: E[]): number;
|
|
23
|
-
/**
|
|
24
|
-
* Writes elements to the buffer.
|
|
25
|
-
* @param es array to write to the buffer
|
|
26
|
-
* @return the count of elements that were written
|
|
27
|
-
*/
|
|
28
|
-
write(es: E[]): number;
|
|
29
|
-
/**
|
|
30
|
-
* Applies a function to every element in the buffer.
|
|
31
|
-
* @param fn the function to apply to every element
|
|
32
|
-
* @return: the count of elements that were used
|
|
33
|
-
*/
|
|
34
|
-
forEach(fn: (e: E) => any): number;
|
|
35
|
-
/**
|
|
36
|
-
* Clears the buffer. This effectively removes all
|
|
37
|
-
* items in the buffer.
|
|
38
|
-
*/
|
|
39
|
-
clear(): void;
|
|
40
|
-
}
|
|
41
|
-
//# sourceMappingURL=buffer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"buffer.d.ts","sourceRoot":"","sources":["../../src/buffer/buffer.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,MAAM,CAAC,CAAC;IACrB;;;;OAIG;IACH,GAAG,IAAI,MAAM,CAAA;IAEb;;;;OAIG;IACH,GAAG,IAAI,MAAM,CAAA;IAEb;;;;OAIG;IACH,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,MAAM,CAAA;IAErB;;;;OAIG;IACH,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,MAAM,CAAA;IAEtB;;;;OAIG;IACH,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,GAAG,MAAM,CAAA;IAElC;;;OAGG;IACH,KAAK,IAAI,IAAI,CAAA;CAChB"}
|
package/lib/buffer/buffer.js
DELETED
package/lib/buffer/buffer.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"buffer.js","sourceRoot":"","sources":["../../src/buffer/buffer.ts"],"names":[],"mappings":""}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { Buffer } from "./buffer";
|
|
2
|
-
/**
|
|
3
|
-
* LRUBuffer is a buffer that keeps the last n elements. When it is
|
|
4
|
-
* full and written to, the oldest element in the buffer will be
|
|
5
|
-
* replaced. When reading from the LRUBuffer, elements are returned
|
|
6
|
-
* in FIFO-order (queue).
|
|
7
|
-
*
|
|
8
|
-
* LRUBuffer has linear space- and time-requirements. Internally
|
|
9
|
-
* an array is used as a circular-buffer. All memory is allocated
|
|
10
|
-
* on initialization.
|
|
11
|
-
*/
|
|
12
|
-
export declare class LRUBuffer<E> implements Buffer<E> {
|
|
13
|
-
private readonly buffer;
|
|
14
|
-
private writePtr;
|
|
15
|
-
private wrapped;
|
|
16
|
-
constructor(len: number);
|
|
17
|
-
len(): number;
|
|
18
|
-
cap(): number;
|
|
19
|
-
read(es: E[]): number;
|
|
20
|
-
write(es: E[]): number;
|
|
21
|
-
forEach(fn: (e: E) => any): number;
|
|
22
|
-
clear(): void;
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=lrubuffer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lrubuffer.d.ts","sourceRoot":"","sources":["../../src/buffer/lrubuffer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAEhC;;;;;;;;;GASG;AACH,qBAAa,SAAS,CAAC,CAAC,CAAE,YAAW,MAAM,CAAC,CAAC,CAAC;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAM;IAC7B,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,OAAO,CAAkB;gBAErB,GAAG,EAAE,MAAM;IAIvB,GAAG,IAAI,MAAM;IAIb,GAAG,IAAI,MAAM;IAIb,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,MAAM;IAkBrB,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,MAAM;IAatB,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,GAAG,MAAM;IAelC,KAAK,IAAI,IAAI;CAIhB"}
|
package/lib/buffer/lrubuffer.js
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.LRUBuffer = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* LRUBuffer is a buffer that keeps the last n elements. When it is
|
|
6
|
-
* full and written to, the oldest element in the buffer will be
|
|
7
|
-
* replaced. When reading from the LRUBuffer, elements are returned
|
|
8
|
-
* in FIFO-order (queue).
|
|
9
|
-
*
|
|
10
|
-
* LRUBuffer has linear space- and time-requirements. Internally
|
|
11
|
-
* an array is used as a circular-buffer. All memory is allocated
|
|
12
|
-
* on initialization.
|
|
13
|
-
*/
|
|
14
|
-
var LRUBuffer = /** @class */ (function () {
|
|
15
|
-
function LRUBuffer(len) {
|
|
16
|
-
this.writePtr = 0;
|
|
17
|
-
this.wrapped = false;
|
|
18
|
-
this.buffer = Array(len);
|
|
19
|
-
}
|
|
20
|
-
LRUBuffer.prototype.len = function () {
|
|
21
|
-
return this.wrapped ? this.buffer.length : this.writePtr;
|
|
22
|
-
};
|
|
23
|
-
LRUBuffer.prototype.cap = function () {
|
|
24
|
-
return this.buffer.length;
|
|
25
|
-
};
|
|
26
|
-
LRUBuffer.prototype.read = function (es) {
|
|
27
|
-
if (es === null || es === undefined || es.length === 0 || this.buffer.length === 0)
|
|
28
|
-
return 0;
|
|
29
|
-
if (this.writePtr === 0 && !this.wrapped)
|
|
30
|
-
return 0;
|
|
31
|
-
var first = this.wrapped ? this.writePtr : 0;
|
|
32
|
-
var last = (first - 1) < 0 ?
|
|
33
|
-
this.buffer.length - 1 :
|
|
34
|
-
first - 1;
|
|
35
|
-
for (var i = 0; i < es.length; i++) {
|
|
36
|
-
var r = (first + i) % this.buffer.length;
|
|
37
|
-
es[i] = this.buffer[r];
|
|
38
|
-
if (r === last)
|
|
39
|
-
return i + 1;
|
|
40
|
-
}
|
|
41
|
-
return es.length;
|
|
42
|
-
};
|
|
43
|
-
LRUBuffer.prototype.write = function (es) {
|
|
44
|
-
if (es === null || es === undefined || es.length === 0 || this.buffer.length === 0)
|
|
45
|
-
return 0;
|
|
46
|
-
var start = es.length > this.buffer.length ? es.length - this.buffer.length : 0;
|
|
47
|
-
for (var i = 0; i < es.length - start; i++) {
|
|
48
|
-
this.buffer[this.writePtr] = es[start + i];
|
|
49
|
-
this.writePtr = (this.writePtr + 1) % this.buffer.length;
|
|
50
|
-
if (this.writePtr === 0)
|
|
51
|
-
this.wrapped = true;
|
|
52
|
-
}
|
|
53
|
-
return es.length;
|
|
54
|
-
};
|
|
55
|
-
LRUBuffer.prototype.forEach = function (fn) {
|
|
56
|
-
if (this.writePtr === 0 && !this.wrapped)
|
|
57
|
-
return 0;
|
|
58
|
-
var cur = this.wrapped ? this.writePtr : 0;
|
|
59
|
-
var last = this.wrapped ? (cur - 1) < 0 ? this.buffer.length - 1 : cur - 1 : this.writePtr - 1;
|
|
60
|
-
var len = this.len();
|
|
61
|
-
while (true) {
|
|
62
|
-
fn(this.buffer[cur]);
|
|
63
|
-
if (cur === last)
|
|
64
|
-
break;
|
|
65
|
-
cur = (cur + 1) % this.buffer.length;
|
|
66
|
-
}
|
|
67
|
-
return len;
|
|
68
|
-
};
|
|
69
|
-
LRUBuffer.prototype.clear = function () {
|
|
70
|
-
this.writePtr = 0;
|
|
71
|
-
this.wrapped = false;
|
|
72
|
-
};
|
|
73
|
-
return LRUBuffer;
|
|
74
|
-
}());
|
|
75
|
-
exports.LRUBuffer = LRUBuffer;
|
|
76
|
-
//# sourceMappingURL=lrubuffer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lrubuffer.js","sourceRoot":"","sources":["../../src/buffer/lrubuffer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { Buffer } from "./buffer";
|
|
2
|
-
/**
|
|
3
|
-
* TimeBuffer keeps the elements that were written to the buffer
|
|
4
|
-
* within maxAge milliseconds. For example, to keep items in the
|
|
5
|
-
* buffer that are less than a minute old, create the buffer with
|
|
6
|
-
* maxAge equal to 60.000.
|
|
7
|
-
*
|
|
8
|
-
* When reading from the TimeBuffer, elements will be returned
|
|
9
|
-
* in FIFO-order (queue).
|
|
10
|
-
*/
|
|
11
|
-
export declare class TimeBuffer<E> implements Buffer<E> {
|
|
12
|
-
private readonly maxAge;
|
|
13
|
-
private tail?;
|
|
14
|
-
private head?;
|
|
15
|
-
constructor(maxAge: number);
|
|
16
|
-
cap(): number;
|
|
17
|
-
len(): number;
|
|
18
|
-
read(es: E[]): number;
|
|
19
|
-
write(es: E[]): number;
|
|
20
|
-
forEach(fn: (e: E) => any): number;
|
|
21
|
-
private putElement;
|
|
22
|
-
private forwardTail;
|
|
23
|
-
clear(): void;
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=timebuffer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"timebuffer.d.ts","sourceRoot":"","sources":["../../src/buffer/timebuffer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAEhC;;;;;;;;GAQG;AACH,qBAAa,UAAU,CAAC,CAAC,CAAE,YAAW,MAAM,CAAC,CAAC,CAAC;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,IAAI,CAAC,CAA0B;IACvC,OAAO,CAAC,IAAI,CAAC,CAA0B;gBAE3B,MAAM,EAAE,MAAM;IAI1B,GAAG,IAAI,MAAM;IAIb,GAAG,IAAI,MAAM;IAWb,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,MAAM;IAerB,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,MAAM;IAMtB,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,GAAG,MAAM;IAYlC,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,WAAW;IAenB,KAAK,IAAI,IAAI;CAGhB"}
|
package/lib/buffer/timebuffer.js
DELETED
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TimeBuffer = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* TimeBuffer keeps the elements that were written to the buffer
|
|
6
|
-
* within maxAge milliseconds. For example, to keep items in the
|
|
7
|
-
* buffer that are less than a minute old, create the buffer with
|
|
8
|
-
* maxAge equal to 60.000.
|
|
9
|
-
*
|
|
10
|
-
* When reading from the TimeBuffer, elements will be returned
|
|
11
|
-
* in FIFO-order (queue).
|
|
12
|
-
*/
|
|
13
|
-
var TimeBuffer = /** @class */ (function () {
|
|
14
|
-
function TimeBuffer(maxAge) {
|
|
15
|
-
this.maxAge = maxAge;
|
|
16
|
-
}
|
|
17
|
-
TimeBuffer.prototype.cap = function () {
|
|
18
|
-
return Number.POSITIVE_INFINITY;
|
|
19
|
-
};
|
|
20
|
-
TimeBuffer.prototype.len = function () {
|
|
21
|
-
this.forwardTail();
|
|
22
|
-
var cur = this.tail;
|
|
23
|
-
var i = 0;
|
|
24
|
-
while (cur !== undefined) {
|
|
25
|
-
i++;
|
|
26
|
-
cur = cur.n;
|
|
27
|
-
}
|
|
28
|
-
return i;
|
|
29
|
-
};
|
|
30
|
-
TimeBuffer.prototype.read = function (es) {
|
|
31
|
-
this.forwardTail();
|
|
32
|
-
if (es.length === 0)
|
|
33
|
-
return 0;
|
|
34
|
-
var cur = this.tail;
|
|
35
|
-
var i = 0;
|
|
36
|
-
while (cur !== undefined) {
|
|
37
|
-
es[i++] = cur.e;
|
|
38
|
-
if (i === es.length)
|
|
39
|
-
break;
|
|
40
|
-
cur = cur.n;
|
|
41
|
-
}
|
|
42
|
-
return i;
|
|
43
|
-
};
|
|
44
|
-
TimeBuffer.prototype.write = function (es) {
|
|
45
|
-
for (var i = 0; i < es.length; i++)
|
|
46
|
-
this.putElement(es[i]);
|
|
47
|
-
return es.length;
|
|
48
|
-
};
|
|
49
|
-
TimeBuffer.prototype.forEach = function (fn) {
|
|
50
|
-
this.forwardTail();
|
|
51
|
-
var cur = this.tail;
|
|
52
|
-
var i = 0;
|
|
53
|
-
while (cur !== undefined) {
|
|
54
|
-
fn(cur.e);
|
|
55
|
-
i++;
|
|
56
|
-
cur = cur.n;
|
|
57
|
-
}
|
|
58
|
-
return i;
|
|
59
|
-
};
|
|
60
|
-
TimeBuffer.prototype.putElement = function (e) {
|
|
61
|
-
var newElement = { e: e, t: Date.now(), n: undefined };
|
|
62
|
-
if (this.tail === undefined)
|
|
63
|
-
this.tail = newElement;
|
|
64
|
-
if (this.head === undefined)
|
|
65
|
-
this.head = newElement;
|
|
66
|
-
else {
|
|
67
|
-
this.head.n = newElement;
|
|
68
|
-
this.head = newElement;
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
TimeBuffer.prototype.forwardTail = function () {
|
|
72
|
-
if (this.tail === undefined)
|
|
73
|
-
return;
|
|
74
|
-
var d = Date.now();
|
|
75
|
-
while (d - this.tail.t > this.maxAge) {
|
|
76
|
-
if (this.tail === this.head) {
|
|
77
|
-
this.tail = undefined;
|
|
78
|
-
this.head = undefined;
|
|
79
|
-
}
|
|
80
|
-
else
|
|
81
|
-
this.tail = this.tail.n;
|
|
82
|
-
if (this.tail === undefined)
|
|
83
|
-
break;
|
|
84
|
-
}
|
|
85
|
-
};
|
|
86
|
-
TimeBuffer.prototype.clear = function () {
|
|
87
|
-
// TODO
|
|
88
|
-
};
|
|
89
|
-
return TimeBuffer;
|
|
90
|
-
}());
|
|
91
|
-
exports.TimeBuffer = TimeBuffer;
|
|
92
|
-
//# sourceMappingURL=timebuffer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"timebuffer.js","sourceRoot":"","sources":["../../src/buffer/timebuffer.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export * from './backoff/backoff';
|
|
2
|
-
export * from './backoff/constantbackoff';
|
|
3
|
-
export * from './backoff/exponentialbackoff';
|
|
4
|
-
export * from './backoff/linearbackoff';
|
|
5
|
-
export * from './buffer/buffer';
|
|
6
|
-
export * from './buffer/lrubuffer';
|
|
7
|
-
export * from './buffer/timebuffer';
|
|
8
|
-
export * from './websocket';
|
|
9
|
-
export * from './websocketBuilder';
|
|
10
|
-
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAA;AACzC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,yBAAyB,CAAA;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC"}
|
package/lib/index.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
-
};
|
|
12
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
__exportStar(require("./backoff/backoff"), exports);
|
|
14
|
-
__exportStar(require("./backoff/constantbackoff"), exports);
|
|
15
|
-
__exportStar(require("./backoff/exponentialbackoff"), exports);
|
|
16
|
-
__exportStar(require("./backoff/linearbackoff"), exports);
|
|
17
|
-
__exportStar(require("./buffer/buffer"), exports);
|
|
18
|
-
__exportStar(require("./buffer/lrubuffer"), exports);
|
|
19
|
-
__exportStar(require("./buffer/timebuffer"), exports);
|
|
20
|
-
__exportStar(require("./websocket"), exports);
|
|
21
|
-
__exportStar(require("./websocketBuilder"), exports);
|
|
22
|
-
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAAkC;AAClC,4DAAyC;AACzC,+DAA4C;AAC5C,0DAAuC;AACvC,kDAAgC;AAChC,qDAAkC;AAClC,sDAAmC;AACnC,8CAA4B;AAC5B,qDAAmC"}
|
package/lib/websocket.d.ts
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { Backoff } from "./backoff/backoff";
|
|
2
|
-
import { Buffer } from "./buffer/buffer";
|
|
3
|
-
export declare enum WebsocketEvents {
|
|
4
|
-
open = "open",
|
|
5
|
-
close = "close",
|
|
6
|
-
error = "error",
|
|
7
|
-
message = "message",
|
|
8
|
-
retry = "retry"
|
|
9
|
-
}
|
|
10
|
-
interface WebsocketEventMap {
|
|
11
|
-
close: CloseEvent;
|
|
12
|
-
error: Event;
|
|
13
|
-
message: MessageEvent;
|
|
14
|
-
open: Event;
|
|
15
|
-
retry: CustomEvent<RetryEventDetails>;
|
|
16
|
-
}
|
|
17
|
-
export interface RetryEventDetails {
|
|
18
|
-
readonly retries: number;
|
|
19
|
-
readonly backoff: number;
|
|
20
|
-
}
|
|
21
|
-
declare type WebsocketBuffer = Buffer<string | ArrayBufferLike | Blob | ArrayBufferView>;
|
|
22
|
-
export declare class Websocket {
|
|
23
|
-
private readonly url;
|
|
24
|
-
private readonly protocols?;
|
|
25
|
-
private readonly buffer?;
|
|
26
|
-
private readonly backoff?;
|
|
27
|
-
private readonly eventListeners;
|
|
28
|
-
private closedByUser;
|
|
29
|
-
private websocket?;
|
|
30
|
-
private retries;
|
|
31
|
-
constructor(url: string, protocols?: string | string[], buffer?: WebsocketBuffer, backoff?: Backoff);
|
|
32
|
-
get underlyingWebsocket(): WebSocket | undefined;
|
|
33
|
-
send(data: string | ArrayBufferLike | Blob | ArrayBufferView): void;
|
|
34
|
-
close(code?: number, reason?: string): void;
|
|
35
|
-
addEventListener<K extends WebsocketEvents>(type: K, listener: (instance: Websocket, ev: WebsocketEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
36
|
-
removeEventListener<K extends WebsocketEvents>(type: K, listener: (instance: Websocket, ev: WebsocketEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
37
|
-
private dispatchEvent;
|
|
38
|
-
private tryConnect;
|
|
39
|
-
private handleOpenEvent;
|
|
40
|
-
private handleCloseEvent;
|
|
41
|
-
private handleErrorEvent;
|
|
42
|
-
private handleMessageEvent;
|
|
43
|
-
private handleEvent;
|
|
44
|
-
private reconnect;
|
|
45
|
-
}
|
|
46
|
-
export {};
|
|
47
|
-
//# sourceMappingURL=websocket.d.ts.map
|
package/lib/websocket.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../src/websocket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAOvC,oBAAY,eAAe;IACvB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,KAAK,UAAU;CAClB;AAED,UAAU,iBAAiB;IACvB,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,YAAY,CAAC;IACtB,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAC3B;AAUD,aAAK,eAAe,GAAG,MAAM,CAAC,MAAM,GAAG,eAAe,GAAG,IAAI,GAAG,eAAe,CAAC,CAAC;AAEjF,qBAAa,SAAS;IAClB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAkB;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqF;IACpH,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,SAAS,CAAC,CAAY;IAC9B,OAAO,CAAC,OAAO,CAAa;gBAEhB,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,OAAO;IAQnG,IAAI,mBAAmB,IAAI,SAAS,GAAG,SAAS,CAE/C;IAEM,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,GAAG,eAAe,GAAG,IAAI;IASnE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAK3C,gBAAgB,CAAC,CAAC,SAAS,eAAe,EAC7C,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,GAAG,EAChE,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAAG,IAAI;IAM/C,mBAAmB,CAAC,CAAC,SAAS,eAAe,EAChD,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,GAAG,EAChE,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GAAG,IAAI;IAQnD,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,eAAe,CAA6D;IAEpF,OAAO,CAAC,gBAAgB,CAAmE;IAE3F,OAAO,CAAC,gBAAgB,CAA8D;IAEtF,OAAO,CAAC,kBAAkB,CAAuE;IAEjG,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,SAAS;CAgBpB"}
|
package/lib/websocket.js
DELETED
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Websocket = exports.WebsocketEvents = void 0;
|
|
4
|
-
var WebsocketEvents;
|
|
5
|
-
(function (WebsocketEvents) {
|
|
6
|
-
WebsocketEvents["open"] = "open";
|
|
7
|
-
WebsocketEvents["close"] = "close";
|
|
8
|
-
WebsocketEvents["error"] = "error";
|
|
9
|
-
WebsocketEvents["message"] = "message";
|
|
10
|
-
WebsocketEvents["retry"] = "retry"; // A try to re-connect is made
|
|
11
|
-
})(WebsocketEvents = exports.WebsocketEvents || (exports.WebsocketEvents = {}));
|
|
12
|
-
var Websocket = /** @class */ (function () {
|
|
13
|
-
function Websocket(url, protocols, buffer, backoff) {
|
|
14
|
-
var _this = this;
|
|
15
|
-
this.eventListeners = { open: [], close: [], error: [], message: [], retry: [] };
|
|
16
|
-
this.closedByUser = false;
|
|
17
|
-
this.retries = 0;
|
|
18
|
-
this.handleOpenEvent = function (ev) { return _this.handleEvent(WebsocketEvents.open, ev); };
|
|
19
|
-
this.handleCloseEvent = function (ev) { return _this.handleEvent(WebsocketEvents.close, ev); };
|
|
20
|
-
this.handleErrorEvent = function (ev) { return _this.handleEvent(WebsocketEvents.error, ev); };
|
|
21
|
-
this.handleMessageEvent = function (ev) { return _this.handleEvent(WebsocketEvents.message, ev); };
|
|
22
|
-
this.url = url;
|
|
23
|
-
this.protocols = protocols;
|
|
24
|
-
this.buffer = buffer;
|
|
25
|
-
this.backoff = backoff;
|
|
26
|
-
this.tryConnect();
|
|
27
|
-
}
|
|
28
|
-
Object.defineProperty(Websocket.prototype, "underlyingWebsocket", {
|
|
29
|
-
get: function () {
|
|
30
|
-
return this.websocket;
|
|
31
|
-
},
|
|
32
|
-
enumerable: false,
|
|
33
|
-
configurable: true
|
|
34
|
-
});
|
|
35
|
-
Websocket.prototype.send = function (data) {
|
|
36
|
-
var _a;
|
|
37
|
-
if (this.closedByUser)
|
|
38
|
-
return;
|
|
39
|
-
if (this.websocket === undefined || this.websocket.readyState !== this.websocket.OPEN)
|
|
40
|
-
(_a = this.buffer) === null || _a === void 0 ? void 0 : _a.write([data]);
|
|
41
|
-
else
|
|
42
|
-
this.websocket.send(data);
|
|
43
|
-
};
|
|
44
|
-
Websocket.prototype.close = function (code, reason) {
|
|
45
|
-
var _a;
|
|
46
|
-
this.closedByUser = true;
|
|
47
|
-
(_a = this.websocket) === null || _a === void 0 ? void 0 : _a.close(code, reason);
|
|
48
|
-
};
|
|
49
|
-
Websocket.prototype.addEventListener = function (type, listener, options) {
|
|
50
|
-
var eventListener = { listener: listener, options: options };
|
|
51
|
-
var eventListeners = this.eventListeners[type];
|
|
52
|
-
eventListeners.push(eventListener);
|
|
53
|
-
};
|
|
54
|
-
Websocket.prototype.removeEventListener = function (type, listener, options) {
|
|
55
|
-
this.eventListeners[type] =
|
|
56
|
-
this.eventListeners[type]
|
|
57
|
-
.filter(function (l) {
|
|
58
|
-
return l.listener !== listener && (l.options === undefined || l.options !== options);
|
|
59
|
-
});
|
|
60
|
-
};
|
|
61
|
-
Websocket.prototype.dispatchEvent = function (type, ev) {
|
|
62
|
-
var _this = this;
|
|
63
|
-
var listeners = this.eventListeners[type];
|
|
64
|
-
var onceListeners = [];
|
|
65
|
-
listeners.forEach(function (l) {
|
|
66
|
-
l.listener(_this, ev); // call listener
|
|
67
|
-
if (l.options !== undefined && l.options.once)
|
|
68
|
-
onceListeners.push(l);
|
|
69
|
-
});
|
|
70
|
-
onceListeners.forEach(function (l) { return _this.removeEventListener(type, l.listener, l.options); }); // remove 'once'-listeners
|
|
71
|
-
};
|
|
72
|
-
Websocket.prototype.tryConnect = function () {
|
|
73
|
-
if (this.websocket !== undefined) { // remove all event-listeners from broken socket
|
|
74
|
-
this.websocket.removeEventListener(WebsocketEvents.open, this.handleOpenEvent);
|
|
75
|
-
this.websocket.removeEventListener(WebsocketEvents.close, this.handleCloseEvent);
|
|
76
|
-
this.websocket.removeEventListener(WebsocketEvents.error, this.handleErrorEvent);
|
|
77
|
-
this.websocket.removeEventListener(WebsocketEvents.message, this.handleMessageEvent);
|
|
78
|
-
this.websocket.close();
|
|
79
|
-
}
|
|
80
|
-
this.websocket = new WebSocket(this.url, this.protocols); // create new socket and attach handlers
|
|
81
|
-
this.websocket.addEventListener(WebsocketEvents.open, this.handleOpenEvent);
|
|
82
|
-
this.websocket.addEventListener(WebsocketEvents.close, this.handleCloseEvent);
|
|
83
|
-
this.websocket.addEventListener(WebsocketEvents.error, this.handleErrorEvent);
|
|
84
|
-
this.websocket.addEventListener(WebsocketEvents.message, this.handleMessageEvent);
|
|
85
|
-
};
|
|
86
|
-
Websocket.prototype.handleEvent = function (type, ev) {
|
|
87
|
-
var _a, _b, _c;
|
|
88
|
-
switch (type) {
|
|
89
|
-
case WebsocketEvents.close:
|
|
90
|
-
if (!this.closedByUser) // failed to connect or connection lost, try to reconnect
|
|
91
|
-
this.reconnect();
|
|
92
|
-
break;
|
|
93
|
-
case WebsocketEvents.open:
|
|
94
|
-
this.retries = 0;
|
|
95
|
-
(_a = this.backoff) === null || _a === void 0 ? void 0 : _a.reset(); // reset backoff
|
|
96
|
-
(_b = this.buffer) === null || _b === void 0 ? void 0 : _b.forEach(this.send.bind(this)); // send all buffered messages
|
|
97
|
-
(_c = this.buffer) === null || _c === void 0 ? void 0 : _c.clear();
|
|
98
|
-
break;
|
|
99
|
-
}
|
|
100
|
-
this.dispatchEvent(type, ev); // forward to all listeners
|
|
101
|
-
};
|
|
102
|
-
Websocket.prototype.reconnect = function () {
|
|
103
|
-
var _this = this;
|
|
104
|
-
if (this.backoff === undefined) // no backoff, we're done
|
|
105
|
-
return;
|
|
106
|
-
var backoff = this.backoff.next();
|
|
107
|
-
setTimeout(function () {
|
|
108
|
-
_this.dispatchEvent(WebsocketEvents.retry, new CustomEvent(WebsocketEvents.retry, {
|
|
109
|
-
detail: {
|
|
110
|
-
retries: ++_this.retries,
|
|
111
|
-
backoff: backoff
|
|
112
|
-
}
|
|
113
|
-
}));
|
|
114
|
-
_this.tryConnect();
|
|
115
|
-
}, backoff);
|
|
116
|
-
};
|
|
117
|
-
return Websocket;
|
|
118
|
-
}());
|
|
119
|
-
exports.Websocket = Websocket;
|
|
120
|
-
//# sourceMappingURL=websocket.js.map
|
package/lib/websocket.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../src/websocket.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { Backoff } from "./backoff/backoff";
|
|
2
|
-
import { Buffer } from "./buffer/buffer";
|
|
3
|
-
import { RetryEventDetails, Websocket } from "./websocket";
|
|
4
|
-
/**
|
|
5
|
-
* Used to build Websocket-instances.
|
|
6
|
-
*/
|
|
7
|
-
export declare class WebsocketBuilder {
|
|
8
|
-
private readonly url;
|
|
9
|
-
private ws;
|
|
10
|
-
private protocols?;
|
|
11
|
-
private backoff?;
|
|
12
|
-
private buffer?;
|
|
13
|
-
private onOpenListeners;
|
|
14
|
-
private onCloseListeners;
|
|
15
|
-
private onErrorListeners;
|
|
16
|
-
private onMessageListeners;
|
|
17
|
-
private onRetryListeners;
|
|
18
|
-
constructor(url: string);
|
|
19
|
-
withProtocols(p: string | string[]): WebsocketBuilder;
|
|
20
|
-
withBackoff(backoff: Backoff): WebsocketBuilder;
|
|
21
|
-
withBuffer(buffer: Buffer<any>): WebsocketBuilder;
|
|
22
|
-
onOpen(listener: (instance: Websocket, ev: Event) => any, options?: boolean | EventListenerOptions): WebsocketBuilder;
|
|
23
|
-
onClose(listener: (instance: Websocket, ev: CloseEvent) => any, options?: boolean | EventListenerOptions): WebsocketBuilder;
|
|
24
|
-
onError(listener: (instance: Websocket, ev: Event) => any, options?: boolean | EventListenerOptions): WebsocketBuilder;
|
|
25
|
-
onMessage(listener: (instance: Websocket, ev: MessageEvent) => any, options?: boolean | EventListenerOptions): WebsocketBuilder;
|
|
26
|
-
onRetry(listener: (instance: Websocket, ev: CustomEvent<RetryEventDetails>) => any, options?: boolean | EventListenerOptions): WebsocketBuilder;
|
|
27
|
-
/**
|
|
28
|
-
* Multiple calls to build() will always return the same websocket-instance.
|
|
29
|
-
*/
|
|
30
|
-
build(): Websocket;
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=websocketBuilder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"websocketBuilder.d.ts","sourceRoot":"","sources":["../src/websocketBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAC,iBAAiB,EAAE,SAAS,EAAkB,MAAM,aAAa,CAAC;AAE1E;;GAEG;AACH,qBAAa,gBAAgB;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,SAAS,CAAC,CAAoB;IACtC,OAAO,CAAC,OAAO,CAAC,CAAU;IAC1B,OAAO,CAAC,MAAM,CAAC,CAA4D;IAC3E,OAAO,CAAC,eAAe,CAGb;IACV,OAAO,CAAC,gBAAgB,CAGd;IACV,OAAO,CAAC,gBAAgB,CAGd;IACV,OAAO,CAAC,kBAAkB,CAGhB;IACV,OAAO,CAAC,gBAAgB,CAGd;gBAEE,GAAG,EAAE,MAAM;IAIhB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,gBAAgB;IAKrD,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,gBAAgB;IAK/C,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,gBAAgB;IAKjD,MAAM,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,KAAK,GAAG,EACjD,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GAAG,gBAAgB;IAKlE,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,UAAU,KAAK,GAAG,EACtD,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GAAG,gBAAgB;IAKnE,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,KAAK,GAAG,EACjD,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GAAG,gBAAgB;IAKnE,SAAS,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,GAAG,EACxD,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GAAG,gBAAgB;IAKrE,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,CAAC,iBAAiB,CAAC,KAAK,GAAG,EAC1E,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GAAG,gBAAgB;IAK1E;;OAEG;IACI,KAAK,IAAI,SAAS;CAW5B"}
|