diff --git a/packages/dictionary/package.json b/packages/dictionary/package.json index 8e4b415..978f7d1 100644 --- a/packages/dictionary/package.json +++ b/packages/dictionary/package.json @@ -1,7 +1,7 @@ { "name": "hl7v2-dictionary", "description": "HL7 v2 parser, serializer, validator for NodeJS", - "version": "1.7.1", + "version": "1.8.0", "author": "Panates", "license": "MIT", "private": true, diff --git a/packages/hl7v2/package.json b/packages/hl7v2/package.json index 0997c3b..a6f8580 100644 --- a/packages/hl7v2/package.json +++ b/packages/hl7v2/package.json @@ -1,7 +1,7 @@ { "name": "hl7v2", "description": "HL7 v2 parser, serializer, validator for NodeJS", - "version": "1.7.1", + "version": "1.8.0", "author": "Panates", "license": "MIT", "private": true, @@ -16,7 +16,7 @@ "uid": "^2.0.2" }, "peerDependencies": { - "hl7v2-dictionary": "^1.7.1" + "hl7v2-dictionary": "^1.8.0" }, "devDependencies": { "expect": "^30.2.0" diff --git a/packages/net/package.json b/packages/net/package.json index 472bb88..041da9a 100644 --- a/packages/net/package.json +++ b/packages/net/package.json @@ -1,7 +1,7 @@ { "name": "hl7v2-net", "description": "HL7 v2 server/client for NodeJS", - "version": "1.7.1", + "version": "1.8.0", "author": "Panates", "license": "MIT", "private": true, @@ -18,8 +18,8 @@ "uid": "^2.0.2" }, "peerDependencies": { - "hl7v2": "^1.7.1", - "hl7v2-dictionary": "^1.7.1" + "hl7v2": "^1.8.0", + "hl7v2-dictionary": "^1.8.0" }, "devDependencies": { "@types/reconnect-core": "^1.3.5", diff --git a/packages/net/src/hl7-client.ts b/packages/net/src/hl7-client.ts index fc07383..b165a61 100644 --- a/packages/net/src/hl7-client.ts +++ b/packages/net/src/hl7-client.ts @@ -115,40 +115,44 @@ export class Hl7Client extends AsyncEventEmitter { return this._options.host + ':' + this._options.port; } - address() { - return this._socket?.address(); + get localAddress() { + return this._socket?.localAddress; } - remoteAddress(): string { - return ( - this._socket?.remoteAddress() || - this._options.host + ':' + this._options.port - ); + get localPort() { + return this._socket?.localPort; } - get connectTimeout(): number | undefined { - return this._options.connectTimeout; + get localFamily() { + return this._socket?.localFamily; } - set connectTimeout(value: number | null) { - this._options.connectTimeout = value ?? undefined; + get remoteAddress() { + return this._socket?.remoteAddress || this._options.host; } - get responseTimeout(): number | undefined { - return this._options.responseTimeout; + get remotePort() { + return this._socket?.remotePort || this._options.port; } - set responseTimeout(value: number | null) { - this._options.responseTimeout = value ?? undefined; + get remoteFamily() { + return this._socket?.remoteFamily; + } + + get connectTimeout(): number | undefined { + return this._options.connectTimeout; + } + + get responseTimeout(): number | undefined { + return this._options.responseTimeout; } get maxBufferSize(): number { return this._options.maxBufferSize || 0; } - set maxBufferSize(value: number) { - this._options.maxBufferSize = value; - if (this._socket) this._socket.maxBufferSize = value; + address() { + return this._socket?.address(); } async connect(): Promise { @@ -189,6 +193,19 @@ export class Hl7Client extends AsyncEventEmitter { return this._socket!.sendMessageWaitAck(request); } + setConnectTimeout(value: number | null) { + this._options.connectTimeout = value ?? undefined; + } + + setResponseTimeout(value: number | null) { + this._options.responseTimeout = value ?? undefined; + } + + setMaxBufferSize(value: number) { + this._options.maxBufferSize = value; + if (this._socket) this._socket.setMaxBufferSize(value); + } + setKeepAlive(enable?: boolean, initialDelay?: number) { this._options.keepAlive = enable; this._options.keepAliveInitialDelay = initialDelay; diff --git a/packages/net/src/hl7-request.ts b/packages/net/src/hl7-request.ts index 6651316..d87dbd9 100644 --- a/packages/net/src/hl7-request.ts +++ b/packages/net/src/hl7-request.ts @@ -9,8 +9,4 @@ export class HL7Request { this.socket = socket; this.message = message; } - - remoteAddress() { - return this.socket.remoteAddress(); - } } diff --git a/packages/net/src/hl7-socket.ts b/packages/net/src/hl7-socket.ts index 2095e5b..4debd42 100644 --- a/packages/net/src/hl7-socket.ts +++ b/packages/net/src/hl7-socket.ts @@ -62,23 +62,39 @@ export class HL7Socket extends AsyncEventEmitter { return this._frameStream.maxBufferSize || 0; } - set maxBufferSize(value: number) { - this._frameStream.maxBufferSize = value; + get localAddress() { + return this.socket?.localAddress; } - address() { - return this.socket?.address() || {}; + get localPort() { + return this.socket?.localPort; + } + + get localFamily() { + return this.socket?.localFamily; } - remoteAddress() { + get remoteAddress() { const addr = this.socket?.remoteAddress; return addr?.startsWith('::ffff:') ? addr.slice(7) : addr; } + get remotePort() { + return this.socket?.remotePort; + } + + get remoteFamily() { + return this.socket?.remoteFamily; + } + get writable() { return this.connected && this.socket?.writable; } + address() { + return this.socket?.address() || {}; + } + async close(waitRunningHandlers?: number): Promise { if (this.closed) return; /** Stop receiving data */ @@ -186,6 +202,10 @@ export class HL7Socket extends AsyncEventEmitter { this.socket.setKeepAlive(enable, initialDelay); } + setMaxBufferSize(value: number) { + this._frameStream.maxBufferSize = value; + } + protected _onData(data: Buffer) { try { const message = new HL7Message();