Skip to content

Commit 560c7f4

Browse files
chore(release): 4.0.0 [skip ci]
# [4.0.0](v3.7.1...v4.0.0) (2020-06-16) ### Features * Switch to NodeJS's EventEmitter as parent class ([#55](#55)) ([d21bb0b](d21bb0b)), closes [#41](#41) ### BREAKING CHANGES * Sockets will no longer return RemovableListeners when calling their addListener() method. Now they inherit all the event methods from Node's EventEmitter class.
1 parent d21bb0b commit 560c7f4

File tree

5 files changed

+61
-64
lines changed

5 files changed

+61
-64
lines changed

CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
# [4.0.0](https://github.com/Rapsssito/react-native-tcp-socket/compare/v3.7.1...v4.0.0) (2020-06-16)
2+
3+
4+
### Features
5+
6+
* Switch to NodeJS's EventEmitter as parent class ([#55](https://github.com/Rapsssito/react-native-tcp-socket/issues/55)) ([d21bb0b](https://github.com/Rapsssito/react-native-tcp-socket/commit/d21bb0b8d0ce0705c10bcde773088624a3bb95ec)), closes [#41](https://github.com/Rapsssito/react-native-tcp-socket/issues/41)
7+
8+
9+
### BREAKING CHANGES
10+
11+
* Sockets will no longer return RemovableListeners when calling their addListener() method. Now they inherit all the event methods from Node's EventEmitter class.
12+
113
## [3.7.1](https://github.com/Rapsssito/react-native-tcp-socket/compare/v3.7.0...v3.7.1) (2020-06-14)
214

315

coverage/coverage-final.json

Lines changed: 4 additions & 0 deletions
Large diffs are not rendered by default.

lib/types/TcpServer.d.ts

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,22 @@ export default class TcpServer extends TcpSocket {
88
connectionCallback: (socket: TcpSocket) => void;
99
/** @type {TcpSocket[]} */
1010
_connections: TcpSocket[];
11-
close(): void;
12-
/**
13-
* @param {(arg0: number) => void} callback
14-
*/
15-
getConnections(callback: (arg0: number) => void): void;
11+
_connectionsListener: import("react-native").EmitterSubscription | undefined;
1612
/**
17-
* @param {{ port: number; host: any; }} options
18-
* @param {(arg0: any) => void} callback
13+
* @param {{ port: number; host: string; reuseAddress?: boolean}} options
14+
* @param {(arg0: any) => void} [callback]
1915
* @returns {TcpServer}
2016
*/
2117
listen(options: {
2218
port: number;
23-
host: any;
24-
}, callback: (arg0: any) => void, ...args: any[]): TcpServer;
19+
host: string;
20+
reuseAddress?: boolean | undefined;
21+
}, callback?: ((arg0: any) => void) | undefined): TcpServer;
22+
/**
23+
* @param {(arg0: number) => void} callback
24+
*/
25+
getConnections(callback: (arg0: number) => void): void;
26+
close(): void;
2527
/**
2628
* @private
2729
* @param {{ id: number; address: string; }} info
@@ -32,17 +34,22 @@ export default class TcpServer extends TcpSocket {
3234
host?: string | undefined;
3335
timeout?: number | undefined;
3436
localAddress?: string | undefined;
35-
localPort?: number | undefined; /**
36-
* @param {{ port: number; host: any; }} options
37-
* @param {(arg0: any) => void} callback
38-
* @returns {TcpServer}
39-
*/
37+
localPort?: number | undefined;
4038
interface?: "wifi" | "cellular" | "ethernet" | undefined;
4139
reuseAddress?: boolean | undefined;
4240
tls?: boolean | undefined;
4341
tlsCheckValidity?: boolean | undefined;
4442
tlsCert?: any;
4543
}, callback?: ((address: string) => void) | undefined): TcpServer;
4644
setTimeout(msecs: number, callback?: ((...args: any[]) => void) | undefined): TcpServer;
45+
addListener(event: string | symbol, listener: (...args: any[]) => void): TcpServer;
46+
on(event: string | symbol, listener: (...args: any[]) => void): TcpServer;
47+
once(event: string | symbol, listener: (...args: any[]) => void): TcpServer;
48+
removeListener(event: string | symbol, listener: (...args: any[]) => void): TcpServer;
49+
off(event: string | symbol, listener: (...args: any[]) => void): TcpServer;
50+
removeAllListeners(event?: string | symbol | undefined): TcpServer;
51+
setMaxListeners(n: number): TcpServer;
52+
prependListener(event: string | symbol, listener: (...args: any[]) => void): TcpServer;
53+
prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): TcpServer;
4754
}
4855
import TcpSocket from "./TcpSocket";

lib/types/TcpSocket.d.ts

Lines changed: 23 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -12,42 +12,31 @@
1212
* tlsCert?: any,
1313
* }} ConnectionOptions
1414
*/
15-
export default class TcpSocket {
15+
export default class TcpSocket extends EventEmitter {
1616
/**
1717
* Initialices a TcpSocket.
1818
*
1919
* @param {number} id
2020
* @param {import('react-native').NativeEventEmitter} eventEmitter
21+
* @param {string} [address]
2122
*/
22-
constructor(id: number, eventEmitter: import("react-native").NativeEventEmitter);
23+
constructor(id: number, eventEmitter: import("react-native").NativeEventEmitter, address?: string | undefined);
2324
_id: number;
2425
_eventEmitter: import("react-native").NativeEventEmitter;
2526
/** @type {number} */
2627
_state: number;
27-
/** @type {RemovableListener[]} */
28-
_listeners: RemovableListener[];
2928
/**
30-
* Adds a listener to be invoked when events of the specified type are emitted by the `TcpSocket`.
31-
* An optional calling `context` may be provided.
32-
* The data arguments emitted will be passed to the listener callback.
33-
*
34-
* @param {string} event Name of the event to listen to
35-
* @param {(arg0: any) => void} callback Function to invoke when the specified event is emitted
36-
* @param {any} [context] Optional context object to use when invoking the listener
37-
* @returns {RemovableListener}
38-
*/
39-
on(event: string, callback: (arg0: any) => void, context?: any): RemovableListener;
40-
/**
41-
* @private
42-
* @param {string} event
43-
* @param {function(any):void} callback
44-
* @param {any} [context]
29+
* @protected
4530
*/
46-
private _selectListener;
31+
protected _registerEvents(): void;
32+
_dataListener: import("react-native").EmitterSubscription | undefined;
33+
_errorListener: import("react-native").EmitterSubscription | undefined;
34+
_closeListener: import("react-native").EmitterSubscription | undefined;
35+
_connectListener: import("react-native").EmitterSubscription | undefined;
4736
/**
48-
* @deprecated
37+
* @protected
4938
*/
50-
off(): void;
39+
protected _unregisterEvents(): void;
5140
/**
5241
* @param {ConnectionOptions} options
5342
* @param {(address: string) => void} [callback]
@@ -103,14 +92,6 @@ export default class TcpSocket {
10392
*/
10493
end(data: string | Buffer | Uint8Array, encoding?: "ascii" | "utf8" | "utf-8" | "utf16le" | "ucs2" | "ucs-2" | "base64" | "latin1" | "binary" | "hex" | undefined): void;
10594
destroy(): void;
106-
/**
107-
* @protected
108-
*/
109-
protected _registerEvents(): void;
110-
/**
111-
* @private
112-
*/
113-
private _unregisterEvents;
11495
/**
11596
* @private
11697
* @param {string} address
@@ -134,10 +115,6 @@ export default class TcpSocket {
134115
* @param {(error: string | null) => void} [callback]
135116
*/
136117
write(buffer: string | Buffer | Uint8Array, encoding?: "ascii" | "utf8" | "utf-8" | "utf16le" | "ucs2" | "ucs-2" | "base64" | "latin1" | "binary" | "hex" | undefined, callback?: ((error: string | null) => void) | undefined): void;
137-
/**
138-
* @param {string} address
139-
*/
140-
setAsAlreadyConnected(address: string): void;
141118
/**
142119
* @private
143120
* @param {string | Buffer | Uint8Array} buffer
@@ -148,12 +125,21 @@ export default class TcpSocket {
148125
* @private
149126
* @param {string} address
150127
*/
151-
private setConnected;
128+
private _setConnected;
152129
_address: string | undefined;
153130
/**
154131
* @private
155132
*/
156-
private setDisconnected;
133+
private _setDisconnected;
134+
addListener(event: string | symbol, listener: (...args: any[]) => void): TcpSocket;
135+
on(event: string | symbol, listener: (...args: any[]) => void): TcpSocket;
136+
once(event: string | symbol, listener: (...args: any[]) => void): TcpSocket;
137+
removeListener(event: string | symbol, listener: (...args: any[]) => void): TcpSocket;
138+
off(event: string | symbol, listener: (...args: any[]) => void): TcpSocket;
139+
removeAllListeners(event?: string | symbol | undefined): TcpSocket;
140+
setMaxListeners(n: number): TcpSocket;
141+
prependListener(event: string | symbol, listener: (...args: any[]) => void): TcpSocket;
142+
prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): TcpSocket;
157143
}
158144
export type ConnectionOptions = {
159145
port: number;
@@ -167,16 +153,4 @@ export type ConnectionOptions = {
167153
tlsCheckValidity?: boolean | undefined;
168154
tlsCert?: any;
169155
};
170-
declare class RemovableListener {
171-
/**
172-
* @param {import("react-native").EmitterSubscription} listener
173-
* @param {import("react-native").NativeEventEmitter} eventEmitter
174-
*/
175-
constructor(listener: import("react-native").EmitterSubscription, eventEmitter: import("react-native").NativeEventEmitter);
176-
_listener: import("react-native").EmitterSubscription;
177-
_eventEmitter: import("react-native").NativeEventEmitter;
178-
_removed: boolean;
179-
isRemoved(): boolean;
180-
remove(): void;
181-
}
182-
export {};
156+
import { EventEmitter } from "node/events";

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "react-native-tcp-socket",
33
"title": "React Native Tcp Socket",
4-
"version": "3.7.1",
4+
"version": "4.0.0",
55
"description": "React Native TCP socket API for Android & iOS with SSL/TLS support",
66
"main": "src/index.js",
77
"types": "lib/types/index.d.ts",

0 commit comments

Comments
 (0)