teckos-client 0.2.4 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/index.js +456 -5
- package/dist/index.min.js +1 -0
- package/es/index.js +459 -0
- package/es/index.mjs +1 -0
- package/lib/index.js +484 -0
- package/package.json +63 -44
- package/src/ITeckosClient.js +2 -0
- package/src/ITeckosClient.js.map +1 -0
- package/src/ITeckosClient.ts +3 -3
- package/src/TeckosClient.js +235 -0
- package/src/TeckosClient.js.map +1 -0
- package/src/TeckosClient.ts +40 -32
- package/src/TeckosClientWithJWT.js +63 -0
- package/src/TeckosClientWithJWT.js.map +1 -0
- package/src/TeckosClientWithJWT.ts +8 -10
- package/src/index.js +8 -0
- package/src/index.js.map +1 -0
- package/src/types/ConnectionState.js +9 -0
- package/src/types/ConnectionState.js.map +1 -0
- package/src/types/Options.js +2 -0
- package/src/types/Options.js.map +1 -0
- package/src/types/Packet.js +2 -0
- package/src/types/Packet.js.map +1 -0
- package/src/types/PacketType.js +7 -0
- package/src/types/PacketType.js.map +1 -0
- package/src/types/SocketEvent.js +2 -0
- package/src/types/SocketEvent.js.map +1 -0
- package/src/types/index.js +4 -0
- package/src/types/index.js.map +1 -0
- package/src/util/Converter.js +6 -0
- package/src/util/Converter.js.map +1 -0
- package/src/util/SocketEventEmitter.js +99 -0
- package/src/util/SocketEventEmitter.js.map +1 -0
- package/src/util/formatProdErrorMessage.ts +16 -0
- package/{dist → types}/ITeckosClient.d.ts +3 -3
- package/{dist → types}/TeckosClient.d.ts +6 -6
- package/{dist → types}/TeckosClientWithJWT.d.ts +0 -0
- package/types/index.d.ts +9 -0
- package/{dist → types}/types/ConnectionState.d.ts +0 -0
- package/{dist → types}/types/Options.d.ts +0 -0
- package/{dist → types}/types/Packet.d.ts +0 -0
- package/{dist → types}/types/PacketType.d.ts +0 -0
- package/{dist → types}/types/SocketEvent.d.ts +0 -0
- package/{dist → types}/types/index.d.ts +0 -0
- package/{dist → types}/util/Converter.d.ts +0 -0
- package/{dist → types}/util/SocketEventEmitter.d.ts +1 -1
- package/types/util/formatProdErrorMessage.d.ts +9 -0
- package/dist/index.d.ts +0 -9
- package/dist/teckos-client.cjs.development.js +0 -617
- package/dist/teckos-client.cjs.development.js.map +0 -1
- package/dist/teckos-client.cjs.production.min.js +0 -2
- package/dist/teckos-client.cjs.production.min.js.map +0 -1
- package/dist/teckos-client.esm.js +0 -614
- package/dist/teckos-client.esm.js.map +0 -1
@@ -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
|
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
|
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:
|
28
|
+
protected handleMessage: (msg: IsomorphicWebSocket.MessageEvent) => void;
|
29
29
|
protected handleOpen: () => void;
|
30
|
-
protected handleError: (error:
|
30
|
+
protected handleError: (error: IsomorphicWebSocket.ErrorEvent) => void;
|
31
31
|
protected handleClose: () => void;
|
32
32
|
close: () => void;
|
33
33
|
disconnect: () => void;
|
File without changes
|
package/types/index.d.ts
ADDED
@@ -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
|
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 };
|