teckos-client 0.2.3 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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 };