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.
Files changed (72) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +157 -93
  3. package/package.json +27 -14
  4. package/src/backoff/backoff.ts +21 -13
  5. package/src/backoff/constantbackoff.ts +29 -11
  6. package/src/backoff/exponentialbackoff.ts +68 -28
  7. package/src/backoff/linearbackoff.ts +77 -26
  8. package/src/index.ts +23 -9
  9. package/src/queue/array_queue.ts +41 -0
  10. package/src/queue/queue.ts +46 -0
  11. package/src/queue/ring_queue.ts +69 -0
  12. package/src/websocket.ts +463 -138
  13. package/src/websocket_buffer.ts +18 -0
  14. package/src/websocket_builder.ts +274 -0
  15. package/src/websocket_event.ts +88 -0
  16. package/src/websocket_options.ts +23 -0
  17. package/src/websocket_retry_options.ts +22 -0
  18. package/{tsconfig.json → tsconfig.cjs.json} +8 -8
  19. package/tsconfig.esm.json +71 -0
  20. package/jest.config.js +0 -9
  21. package/lib/backoff/backoff.d.ts +0 -18
  22. package/lib/backoff/backoff.d.ts.map +0 -1
  23. package/lib/backoff/backoff.js +0 -3
  24. package/lib/backoff/backoff.js.map +0 -1
  25. package/lib/backoff/constantbackoff.d.ts +0 -11
  26. package/lib/backoff/constantbackoff.d.ts.map +0 -1
  27. package/lib/backoff/constantbackoff.js +0 -20
  28. package/lib/backoff/constantbackoff.js.map +0 -1
  29. package/lib/backoff/exponentialbackoff.d.ts +0 -22
  30. package/lib/backoff/exponentialbackoff.d.ts.map +0 -1
  31. package/lib/backoff/exponentialbackoff.js +0 -35
  32. package/lib/backoff/exponentialbackoff.js.map +0 -1
  33. package/lib/backoff/linearbackoff.d.ts +0 -19
  34. package/lib/backoff/linearbackoff.d.ts.map +0 -1
  35. package/lib/backoff/linearbackoff.js +0 -34
  36. package/lib/backoff/linearbackoff.js.map +0 -1
  37. package/lib/buffer/buffer.d.ts +0 -41
  38. package/lib/buffer/buffer.d.ts.map +0 -1
  39. package/lib/buffer/buffer.js +0 -3
  40. package/lib/buffer/buffer.js.map +0 -1
  41. package/lib/buffer/lrubuffer.d.ts +0 -24
  42. package/lib/buffer/lrubuffer.d.ts.map +0 -1
  43. package/lib/buffer/lrubuffer.js +0 -76
  44. package/lib/buffer/lrubuffer.js.map +0 -1
  45. package/lib/buffer/timebuffer.d.ts +0 -25
  46. package/lib/buffer/timebuffer.d.ts.map +0 -1
  47. package/lib/buffer/timebuffer.js +0 -92
  48. package/lib/buffer/timebuffer.js.map +0 -1
  49. package/lib/index.d.ts +0 -10
  50. package/lib/index.d.ts.map +0 -1
  51. package/lib/index.js +0 -22
  52. package/lib/index.js.map +0 -1
  53. package/lib/websocket.d.ts +0 -47
  54. package/lib/websocket.d.ts.map +0 -1
  55. package/lib/websocket.js +0 -120
  56. package/lib/websocket.js.map +0 -1
  57. package/lib/websocketBuilder.d.ts +0 -32
  58. package/lib/websocketBuilder.d.ts.map +0 -1
  59. package/lib/websocketBuilder.js +0 -68
  60. package/lib/websocketBuilder.js.map +0 -1
  61. package/src/buffer/buffer.ts +0 -45
  62. package/src/buffer/lrubuffer.ts +0 -80
  63. package/src/buffer/timebuffer.ts +0 -105
  64. package/src/websocketBuilder.ts +0 -98
  65. package/test/backoff/constantbackoff.test.ts +0 -21
  66. package/test/backoff/exponentialbackoff.test.ts +0 -13
  67. package/test/backoff/linearbackoff.test.ts +0 -32
  68. package/test/buffer/common.ts +0 -10
  69. package/test/buffer/lrubuffer.test.ts +0 -128
  70. package/test/buffer/timebuffer.test.ts +0 -115
  71. package/test/websocket.test.ts +0 -341
  72. 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"}
@@ -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"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=buffer.js.map
@@ -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"}
@@ -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"}
@@ -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
@@ -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"}
@@ -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
@@ -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
@@ -1 +0,0 @@
1
- {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../src/websocket.ts"],"names":[],"mappings":";;;AAQA,IAAY,eAMX;AAND,WAAY,eAAe;IACvB,gCAAa,CAAA;IACb,kCAAe,CAAA;IACf,kCAAe,CAAA;IACf,sCAAmB,CAAA;IACnB,kCAAe,CAAA,CAAS,8BAA8B;AAC1D,CAAC,EANW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAM1B;AAyBD;IAUI,mBAAY,GAAW,EAAE,SAA6B,EAAE,MAAwB,EAAE,OAAiB;QAAnG,iBAMC;QAXgB,mBAAc,GAA4B,EAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAC,CAAC;QAC5G,iBAAY,GAAY,KAAK,CAAC;QAE9B,YAAO,GAAW,CAAC,CAAC;QA0EpB,oBAAe,GAAG,UAAC,EAAS,IAAK,OAAA,KAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,EAA1C,CAA0C,CAAC;QAE5E,qBAAgB,GAAG,UAAC,EAAc,IAAK,OAAA,KAAI,CAAC,WAAW,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,CAAC,EAA3C,CAA2C,CAAC;QAEnF,qBAAgB,GAAG,UAAC,EAAS,IAAK,OAAA,KAAI,CAAC,WAAW,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,CAAC,EAA3C,CAA2C,CAAC;QAE9E,uBAAkB,GAAG,UAAC,EAAgB,IAAK,OAAA,KAAI,CAAC,WAAW,CAAC,eAAe,CAAC,OAAO,EAAE,EAAE,CAAC,EAA7C,CAA6C,CAAC;QA7E7F,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAED,sBAAI,0CAAmB;aAAvB;YACI,OAAO,IAAI,CAAC,SAAS,CAAC;QAC1B,CAAC;;;OAAA;IAEM,wBAAI,GAAX,UAAY,IAAuD;;QAC/D,IAAI,IAAI,CAAC,YAAY;YACjB,OAAO;QACX,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI;YACjF,MAAA,IAAI,CAAC,MAAM,0CAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;;YAE3B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAEM,yBAAK,GAAZ,UAAa,IAAa,EAAE,MAAe;;QACvC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,MAAA,IAAI,CAAC,SAAS,0CAAE,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAEM,oCAAgB,GAAvB,UACI,IAAO,EACP,QAAgE,EAChE,OAA2C;QAC3C,IAAM,aAAa,GAAG,EAAC,QAAQ,UAAA,EAAE,OAAO,SAAA,EAAqB,CAAC;QAC9D,IAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAuB,CAAC;QACvE,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC;IAEM,uCAAmB,GAA1B,UACI,IAAO,EACP,QAAgE,EAChE,OAAwC;QACvC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAwB;YAC5C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAwB;iBAC5C,MAAM,CAAC,UAAA,CAAC;gBACL,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;YACzF,CAAC,CAAC,CAAC;IACf,CAAC;IAEO,iCAAa,GAArB,UAAiD,IAAO,EAAE,EAAwB;QAAlF,iBASC;QARG,IAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAuB,CAAC;QAClE,IAAM,aAAa,GAAG,EAAwB,CAAC;QAC/C,SAAS,CAAC,OAAO,CAAC,UAAA,CAAC;YACf,CAAC,CAAC,QAAQ,CAAC,KAAI,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB;YACtC,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,IAAK,CAAC,CAAC,OAAmC,CAAC,IAAI;gBACtE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,aAAa,CAAC,OAAO,CAAC,UAAA,CAAC,IAAI,OAAA,KAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,EAArD,CAAqD,CAAC,CAAC,CAAC,0BAA0B;IACjH,CAAC;IAEO,8BAAU,GAAlB;QACI,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,EAAE,gDAAgD;YAChF,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YAC/E,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACjF,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACjF,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACrF,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;SAC1B;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,wCAAwC;QAClG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5E,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC9E,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC9E,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACtF,CAAC;IAUO,+BAAW,GAAnB,UAA+C,IAAO,EAAE,EAAwB;;QAC5E,QAAQ,IAAI,EAAE;YACV,KAAK,eAAe,CAAC,KAAK;gBACtB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,yDAAyD;oBAC7E,IAAI,CAAC,SAAS,EAAE,CAAC;gBACrB,MAAM;YACV,KAAK,eAAe,CAAC,IAAI;gBACrB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;gBACjB,MAAA,IAAI,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC,CAAC,gBAAgB;gBACvC,MAAA,IAAI,CAAC,MAAM,0CAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,6BAA6B;gBACzE,MAAA,IAAI,CAAC,MAAM,0CAAE,KAAK,EAAE,CAAC;gBACrB,MAAM;SACb;QACD,IAAI,CAAC,aAAa,CAAI,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,2BAA2B;IAChE,CAAC;IAEO,6BAAS,GAAjB;QAAA,iBAeC;QAdG,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,yBAAyB;YACrD,OAAO;QACX,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpC,UAAU,CAAC;YACP,KAAI,CAAC,aAAa,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,WAAW,CAAoB,eAAe,CAAC,KAAK,EAC9F;gBACI,MAAM,EAAE;oBACJ,OAAO,EAAE,EAAE,KAAI,CAAC,OAAO;oBACvB,OAAO,EAAE,OAAO;iBACnB;aACJ,CAAC,CACL,CAAC;YACF,KAAI,CAAC,UAAU,EAAE,CAAC;QACtB,CAAC,EAAE,OAAO,CAAC,CAAC;IAChB,CAAC;IACL,gBAAC;AAAD,CAAC,AA1HD,IA0HC;AA1HY,8BAAS"}
@@ -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"}