teckos-client 0.2.3 → 0.3.0

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 (55) hide show
  1. package/dist/index.js +456 -5
  2. package/dist/index.min.js +1 -0
  3. package/es/index.js +459 -0
  4. package/es/index.mjs +1 -0
  5. package/lib/index.js +484 -0
  6. package/package.json +63 -44
  7. package/src/ITeckosClient.js +2 -0
  8. package/src/ITeckosClient.js.map +1 -0
  9. package/src/ITeckosClient.ts +3 -3
  10. package/src/TeckosClient.js +235 -0
  11. package/src/TeckosClient.js.map +1 -0
  12. package/src/TeckosClient.ts +40 -32
  13. package/src/TeckosClientWithJWT.js +63 -0
  14. package/src/TeckosClientWithJWT.js.map +1 -0
  15. package/src/TeckosClientWithJWT.ts +8 -10
  16. package/src/index.js +8 -0
  17. package/src/index.js.map +1 -0
  18. package/src/index.ts +3 -3
  19. package/src/types/ConnectionState.js +9 -0
  20. package/src/types/ConnectionState.js.map +1 -0
  21. package/src/types/Options.js +2 -0
  22. package/src/types/Options.js.map +1 -0
  23. package/src/types/Packet.js +2 -0
  24. package/src/types/Packet.js.map +1 -0
  25. package/src/types/PacketType.js +7 -0
  26. package/src/types/PacketType.js.map +1 -0
  27. package/src/types/SocketEvent.js +2 -0
  28. package/src/types/SocketEvent.js.map +1 -0
  29. package/src/types/index.js +4 -0
  30. package/src/types/index.js.map +1 -0
  31. package/src/util/Converter.js +6 -0
  32. package/src/util/Converter.js.map +1 -0
  33. package/src/util/SocketEventEmitter.js +99 -0
  34. package/src/util/SocketEventEmitter.js.map +1 -0
  35. package/src/util/formatProdErrorMessage.ts +16 -0
  36. package/{dist → types}/ITeckosClient.d.ts +3 -3
  37. package/{dist → types}/TeckosClient.d.ts +6 -6
  38. package/{dist → types}/TeckosClientWithJWT.d.ts +0 -0
  39. package/types/index.d.ts +9 -0
  40. package/{dist → types}/types/ConnectionState.d.ts +0 -0
  41. package/{dist → types}/types/Options.d.ts +0 -0
  42. package/{dist → types}/types/Packet.d.ts +0 -0
  43. package/{dist → types}/types/PacketType.d.ts +0 -0
  44. package/{dist → types}/types/SocketEvent.d.ts +0 -0
  45. package/{dist → types}/types/index.d.ts +0 -0
  46. package/{dist → types}/util/Converter.d.ts +0 -0
  47. package/{dist → types}/util/SocketEventEmitter.d.ts +1 -1
  48. package/types/util/formatProdErrorMessage.d.ts +9 -0
  49. package/dist/index.d.ts +0 -9
  50. package/dist/teckos-client.cjs.development.js +0 -614
  51. package/dist/teckos-client.cjs.development.js.map +0 -1
  52. package/dist/teckos-client.cjs.production.min.js +0 -2
  53. package/dist/teckos-client.cjs.production.min.js.map +0 -1
  54. package/dist/teckos-client.esm.js +0 -611
  55. package/dist/teckos-client.esm.js.map +0 -1
@@ -0,0 +1,6 @@
1
+ const enc = new TextEncoder();
2
+ const dec = new TextDecoder();
3
+ const encodePacket = (packet) => enc.encode(JSON.stringify(packet));
4
+ const decodePacket = (buffer) => JSON.parse(dec.decode(buffer).toString());
5
+ export { encodePacket, decodePacket };
6
+ //# sourceMappingURL=Converter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Converter.js","sourceRoot":"","sources":["Converter.ts"],"names":[],"mappings":"AAEA,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAA;AAC7B,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAA;AAE7B,MAAM,YAAY,GAAG,CAAC,MAAc,EAAmB,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;AAC5F,MAAM,YAAY,GAAG,CAAC,MAAmB,EAAU,EAAE,CACjD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAW,CAAA;AAEvD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,CAAA"}
@@ -0,0 +1,99 @@
1
+ class SocketEventEmitter {
2
+ maxListeners = 50;
3
+ handlers = {};
4
+ addListener = (event, listener) => {
5
+ if (Object.keys(this.handlers).length === this.maxListeners) {
6
+ throw new Error('Max listeners reached');
7
+ }
8
+ if (typeof listener !== 'function') {
9
+ throw new Error('The given listener is not a function');
10
+ }
11
+ this.handlers[event] = this.handlers[event] || [];
12
+ this.handlers[event].push(listener);
13
+ return this;
14
+ };
15
+ once = (event, listener) => {
16
+ if (Object.keys(this.handlers).length === this.maxListeners) {
17
+ throw new Error('Max listeners reached');
18
+ }
19
+ if (typeof listener !== 'function') {
20
+ throw new Error('The given listener is not a function');
21
+ }
22
+ this.handlers[event] = this.handlers[event] || [];
23
+ const onceWrapper = () => {
24
+ listener();
25
+ this.off(event, onceWrapper);
26
+ };
27
+ this.handlers[event].push(onceWrapper);
28
+ return this;
29
+ };
30
+ removeListener = (event, listener) => {
31
+ if (this.handlers[event]) {
32
+ this.handlers[event] = this.handlers[event].filter((handler) => handler !== listener);
33
+ }
34
+ return this;
35
+ };
36
+ off = (event, listener) => this.removeListener(event, listener);
37
+ removeAllListeners = (event) => {
38
+ if (event) {
39
+ delete this.handlers[event];
40
+ }
41
+ else {
42
+ this.handlers = {};
43
+ }
44
+ return this;
45
+ };
46
+ setMaxListeners = (n) => {
47
+ this.maxListeners = n;
48
+ return this;
49
+ };
50
+ getMaxListeners = () => this.maxListeners;
51
+ listeners = (event) => {
52
+ if (this.handlers[event]) {
53
+ return [...this.handlers[event]];
54
+ }
55
+ return [];
56
+ };
57
+ rawListeners = (event) => [...this.handlers[event]];
58
+ listenerCount = (event) => {
59
+ if (this.handlers[event]) {
60
+ return Object.keys(this.handlers[event]).length;
61
+ }
62
+ return 0;
63
+ };
64
+ prependListener = (event, listener) => {
65
+ if (Object.keys(this.handlers).length === this.maxListeners) {
66
+ throw new Error('Max listeners reached');
67
+ }
68
+ this.handlers[event] = this.handlers[event] || [];
69
+ this.handlers[event].unshift(listener);
70
+ return this;
71
+ };
72
+ prependOnceListener = (event, listener) => {
73
+ if (Object.keys(this.handlers).length === this.maxListeners) {
74
+ throw new Error('Max listeners reached');
75
+ }
76
+ this.handlers[event] = this.handlers[event] || [];
77
+ const onceWrapper = () => {
78
+ listener();
79
+ this.off(event, onceWrapper);
80
+ };
81
+ this.handlers[event].unshift(onceWrapper);
82
+ return this;
83
+ };
84
+ eventNames = () => Object.keys(this.handlers);
85
+ on = (event, listener) => this.addListener(event, listener);
86
+ emit = (event, ...args) => {
87
+ const listeners = this.listeners(event);
88
+ if (listeners.length > 0) {
89
+ listeners.forEach((listener) => {
90
+ if (listener)
91
+ listener(args);
92
+ });
93
+ return true;
94
+ }
95
+ return false;
96
+ };
97
+ }
98
+ export { SocketEventEmitter };
99
+ //# sourceMappingURL=SocketEventEmitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SocketEventEmitter.js","sourceRoot":"","sources":["SocketEventEmitter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js
3
+ *
4
+ * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes
5
+ * during build.
6
+ * @param {number} code
7
+ */
8
+ function formatProdErrorMessage(code: number) {
9
+ return (
10
+ `Minified Redux error #${code}; visit https://redux.js.org/Errors?code=${code} for the full message or ` +
11
+ 'use the non-minified dev environment for full errors. '
12
+ )
13
+ }
14
+
15
+ // eslint-disable-next-line import/no-default-export
16
+ export default formatProdErrorMessage
@@ -1,10 +1,10 @@
1
1
  /// <reference types="ws" />
2
- import WebSocket from 'isomorphic-ws';
2
+ import * as IsomorphicWebSocket from 'isomorphic-ws';
3
3
  import { ConnectionState, Packet, SocketEvent } from './types';
4
4
  import { SocketEventEmitter } from './util/SocketEventEmitter';
5
5
  interface ITeckosClient extends SocketEventEmitter<SocketEvent> {
6
- ws: WebSocket | undefined;
7
- readonly webSocket: WebSocket | undefined;
6
+ ws: IsomorphicWebSocket.WebSocket | undefined;
7
+ readonly webSocket: IsomorphicWebSocket.WebSocket | undefined;
8
8
  readonly state: ConnectionState;
9
9
  readonly connected: boolean;
10
10
  readonly disconnected: boolean;
@@ -1,12 +1,12 @@
1
1
  /// <reference types="ws" />
2
- import WebSocket from 'isomorphic-ws';
3
- import { ConnectionState, OptionalOptions, Options, Packet, SocketEvent } from './types';
2
+ import * as IsomorphicWebSocket from 'isomorphic-ws';
4
3
  import { ITeckosClient } from './ITeckosClient';
5
4
  import { SocketEventEmitter } from './util/SocketEventEmitter';
5
+ import { OptionalOptions, Options, SocketEvent, ConnectionState, Packet } from './types';
6
6
  declare class TeckosClient extends SocketEventEmitter<SocketEvent> implements ITeckosClient {
7
7
  protected readonly url: string;
8
8
  protected readonly options: Options;
9
- ws: WebSocket | undefined;
9
+ ws: IsomorphicWebSocket.WebSocket | undefined;
10
10
  protected currentReconnectDelay: number;
11
11
  protected currentReconnectionAttempts: number;
12
12
  protected acks: Map<number, (...args: any[]) => void>;
@@ -15,7 +15,7 @@ declare class TeckosClient extends SocketEventEmitter<SocketEvent> implements IT
15
15
  protected reconnectionTimeout: any | undefined;
16
16
  constructor(url: string, options?: OptionalOptions);
17
17
  protected attachHandler: () => void;
18
- get webSocket(): WebSocket | undefined;
18
+ get webSocket(): IsomorphicWebSocket.WebSocket | undefined;
19
19
  connect: () => void;
20
20
  protected reconnect: () => void;
21
21
  protected getConnectionState(): ConnectionState;
@@ -25,9 +25,9 @@ declare class TeckosClient extends SocketEventEmitter<SocketEvent> implements IT
25
25
  emit: (event: SocketEvent, ...args: any[]) => boolean;
26
26
  send: (...args: any[]) => boolean;
27
27
  sendPackage: (packet: Packet) => boolean;
28
- protected handleMessage: (msg: WebSocket.MessageEvent) => void;
28
+ protected handleMessage: (msg: IsomorphicWebSocket.MessageEvent) => void;
29
29
  protected handleOpen: () => void;
30
- protected handleError: (error: WebSocket.ErrorEvent) => void;
30
+ protected handleError: (error: IsomorphicWebSocket.ErrorEvent) => void;
31
31
  protected handleClose: () => void;
32
32
  close: () => void;
33
33
  disconnect: () => void;
File without changes
@@ -0,0 +1,9 @@
1
+ import { TeckosClientWithJWT } from './TeckosClientWithJWT';
2
+ import { TeckosClient } from './TeckosClient';
3
+ import { ITeckosClient } from './ITeckosClient';
4
+ /**
5
+ * Expose all types
6
+ */
7
+ export * from './types';
8
+ export type { ITeckosClient };
9
+ export { TeckosClient, TeckosClientWithJWT };
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -8,7 +8,7 @@ declare class SocketEventEmitter<T extends string> {
8
8
  once: (event: T, listener: (...args: any[]) => void) => this;
9
9
  removeListener: (event: T, listener: (...args: any[]) => void) => this;
10
10
  off: (event: T, listener: (...args: any[]) => void) => this;
11
- removeAllListeners: (event?: T | undefined) => this;
11
+ removeAllListeners: (event?: T) => this;
12
12
  setMaxListeners: (n: number) => this;
13
13
  getMaxListeners: () => number;
14
14
  listeners: (event: T) => Listener[];
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js
3
+ *
4
+ * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes
5
+ * during build.
6
+ * @param {number} code
7
+ */
8
+ declare function formatProdErrorMessage(code: number): string;
9
+ export default formatProdErrorMessage;
package/dist/index.d.ts DELETED
@@ -1,9 +0,0 @@
1
- import { TeckosClientWithJWT } from './TeckosClientWithJWT';
2
- import { TeckosClient } from './TeckosClient';
3
- import { ITeckosClient } from './ITeckosClient';
4
- import { ConnectionState, OptionalOptions, Options, Packet, PacketType, SocketEvent } from './types';
5
- /**
6
- * Expose all types
7
- */
8
- export type { Options, OptionalOptions, Packet, SocketEvent, ITeckosClient };
9
- export { ConnectionState, PacketType, TeckosClient, TeckosClientWithJWT };