diff --git a/.npmignore b/.npmignore index 9a8d375..8428db1 100644 --- a/.npmignore +++ b/.npmignore @@ -7,6 +7,7 @@ CONTRIBUTING.md CODE_OF_CONDUCT.md README.md .releaserc +jsconfig.json # Config files .babelrc diff --git a/jsconfig.json b/jsconfig.json new file mode 100644 index 0000000..43bc06c --- /dev/null +++ b/jsconfig.json @@ -0,0 +1,8 @@ +{ + "compilerOptions": { + "target": "es6", + "allowSyntheticDefaultImports": true, + "checkJs": true + }, + "exclude": ["node_modules", "coverage", ".github"] +} \ No newline at end of file diff --git a/src/TcpServer.js b/src/TcpServer.js index ce2d348..b536984 100644 --- a/src/TcpServer.js +++ b/src/TcpServer.js @@ -5,10 +5,17 @@ const Sockets = NativeModules.TcpSockets; import TcpSocket from './TcpSocket'; export default class TcpServer extends TcpSocket { + /** + * @param {number} id + * @param {import("react-native").NativeEventEmitter} eventEmitter + * @param {(socket: TcpSocket) => void} connectionCallback + */ constructor(id, eventEmitter, connectionCallback) { super(id, eventEmitter); this.connectionCallback = connectionCallback; + /** @type {TcpSocket[]} */ this._connections = []; + this._eventEmitter = eventEmitter; } close() { @@ -16,10 +23,17 @@ export default class TcpServer extends TcpSocket { this._connections.forEach((clientSocket) => clientSocket.destroy()); } + /** + * @param {(arg0: number) => void} callback + */ getConnections(callback) { callback(this._connections.length); } + /** + * @param {{ port: number; host: any; }} options + * @param {(arg0: any) => void} callback + */ listen(options, callback) { let gotOptions = {}; // Normalize args @@ -45,6 +59,9 @@ export default class TcpServer extends TcpSocket { return this; } + /** + * @param {{ id: number; address: string; }} info + */ _onConnection(info) { const socket = new TcpSocket(info.id, this._eventEmitter); socket._registerEvents(); diff --git a/src/index.js b/src/index.js index e1a13a7..4552ba2 100644 --- a/src/index.js +++ b/src/index.js @@ -12,10 +12,17 @@ class TCPSockets { this._eventEmitter = new NativeEventEmitter(Sockets); } + /** + * @param {(socket: Socket) => void} connectionListener + */ createServer(connectionListener) { return new Server(this.instances++, this._eventEmitter, connectionListener); } + /** + * @param {{ host: string; port: number; timeout: number; }} options + * @param {(address: string) => void} callback + */ createConnection(options, callback) { const tcpSocket = new Socket(this.instances++, this._eventEmitter); return tcpSocket.connect(options, callback);