Skip to content

Commit e2a7bf7

Browse files
authored
Merge pull request #46 from panates/dev
Dev
2 parents cb45744 + 7bb8459 commit e2a7bf7

File tree

5 files changed

+48
-20
lines changed

5 files changed

+48
-20
lines changed

packages/dictionary/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "hl7v2-dictionary",
33
"description": "HL7 v2 parser, serializer, validator for NodeJS",
4-
"version": "1.1.4",
4+
"version": "1.1.5",
55
"author": "Panates",
66
"license": "MIT",
77
"private": true,

packages/hl7v2/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "hl7v2",
33
"description": "HL7 v2 parser, serializer, validator for NodeJS",
4-
"version": "1.1.4",
4+
"version": "1.1.5",
55
"author": "Panates",
66
"license": "MIT",
77
"private": true,
@@ -16,7 +16,7 @@
1616
"uid": "^2.0.2"
1717
},
1818
"peerDependencies": {
19-
"hl7v2-dictionary": "^1.1.4"
19+
"hl7v2-dictionary": "^1.1.5"
2020
},
2121
"devDependencies": {
2222
"expect": "^30.0.5"

packages/net/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "hl7v2-net",
33
"description": "HL7 v2 server/client for NodeJS",
4-
"version": "1.1.4",
4+
"version": "1.1.5",
55
"author": "Panates",
66
"license": "MIT",
77
"private": true,
@@ -16,8 +16,8 @@
1616
"uid": "^2.0.2"
1717
},
1818
"peerDependencies": {
19-
"hl7v2": "^1.1.4",
20-
"hl7v2-dictionary": "^1.1.4"
19+
"hl7v2": "^1.1.5",
20+
"hl7v2-dictionary": "^1.1.5"
2121
},
2222
"devDependencies": {
2323
"expect": "^30.0.5"

packages/net/src/hl7-client.ts

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import net from 'node:net';
22
import tls from 'node:tls';
33
import { HL7Message } from 'hl7v2';
4+
import { AddressInfo } from 'net';
45
import { AsyncEventEmitter } from 'node-events-async';
56
import { StrictOmit } from 'ts-gems';
67
import { HL7RequestContext } from './h-l7-request-context.js';
@@ -50,10 +51,30 @@ export class Hl7Client extends AsyncEventEmitter<Hl7Client.Events> {
5051
return this._socket?.connected ?? false;
5152
}
5253

54+
get closed(): boolean {
55+
return this._socket?.closed ?? true;
56+
}
57+
5358
get readyState() {
5459
return this._socket?.readyState || 'closed';
5560
}
5661

62+
get uri(): string {
63+
return this._options.host + ':' + this._options.port;
64+
}
65+
66+
address(): AddressInfo {
67+
const out = this._socket?.address();
68+
if (!(out as any)?.address) {
69+
return {
70+
address: this._options.host || '',
71+
port: this._options.port || 0,
72+
family: 'tcp',
73+
} satisfies AddressInfo;
74+
}
75+
return out as AddressInfo;
76+
}
77+
5778
get connectTimeout(): number | undefined {
5879
return this._options.connectTimeout;
5980
}
@@ -93,17 +114,19 @@ export class Hl7Client extends AsyncEventEmitter<Hl7Client.Events> {
93114

94115
socket.on('connect', () => this.emit('connect'));
95116
socket.on('ready', () => this.emit('ready'));
96-
socket.on('lookup', listener => this.emit('lookup', listener));
117+
socket.on('lookup', (err, address, family, host) =>
118+
this.emit('lookup', err, address, family, host),
119+
);
97120
socket.on('close', () => {
98121
this._socket = undefined;
99122
this.emit('close');
100123
});
101124
socket.on('error', err => this.emit('error', err));
102125
socket.on('message', message => {
103-
this.emit('message', message, socket);
126+
this.emit('message', message);
104127
this._onMessage(message);
105128
});
106-
socket.on('send', message => this.emit('send', message, socket));
129+
socket.on('send', message => this.emit('send', message));
107130

108131
const onReady = () => {
109132
clearTimeout(timeoutTimer);

packages/net/src/hl7-socket.ts

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { Socket } from 'net';
55
import { AsyncEventEmitter } from 'node-events-async';
66
import { FrameStream } from './helpers/frame-stream.js';
77

8-
export class HL7Socket extends AsyncEventEmitter {
8+
export class HL7Socket extends AsyncEventEmitter<HL7Socket.Events> {
99
readonly socket: Socket;
1010
protected _messageHooks = new Set<(resp: HL7Message) => boolean>();
1111
protected _frameStream: FrameStream;
@@ -32,7 +32,9 @@ export class HL7Socket extends AsyncEventEmitter {
3232
socket.pipe(frameStream);
3333
socket.on('connect', () => this.emit('connect'));
3434
socket.on('ready', () => this.emit('ready'));
35-
socket.on('lookup', listener => this.emit('lookup', listener));
35+
socket.on('lookup', (err, address, family, host) =>
36+
this.emit('lookup', err, address, family, host),
37+
);
3638
socket.on('timeout', () => socket.destroy());
3739
socket.on('close', () => {
3840
this.emit('close');
@@ -71,6 +73,11 @@ export class HL7Socket extends AsyncEventEmitter {
7173
return this.socket.address();
7274
}
7375

76+
uri() {
77+
const address: any = this.socket.address();
78+
return address.address + ':' + address.port;
79+
}
80+
7481
get writable() {
7582
return this.connected && this.socket.writable;
7683
}
@@ -112,7 +119,7 @@ export class HL7Socket extends AsyncEventEmitter {
112119
this.socket.write(VT);
113120
this.socket.write(buf);
114121
this.socket.end(FS + CR);
115-
this.emit('send', message, this.socket);
122+
this.emit('send', message);
116123
} catch (err: any) {
117124
this.emit('error', err);
118125
throw err;
@@ -189,15 +196,13 @@ export namespace HL7Socket {
189196
close: [];
190197
error: [error: Error];
191198
lookup: [
192-
listener: (
193-
err: Error,
194-
address: string,
195-
family: string | number,
196-
host: string,
197-
) => void,
199+
err: Error,
200+
address: string,
201+
family: string | number,
202+
host: string,
198203
];
199-
message: [message: HL7Message, socket: HL7Socket];
200-
send: [message: HL7Message, socket: HL7Socket];
204+
message: [message: HL7Message];
205+
send: [message: HL7Message];
201206
}
202207

203208
export interface Options {

0 commit comments

Comments
 (0)