Skip to content

Commit c2aa785

Browse files
feat(data-service): expose close event VSCODE-536 (#5849)
* feat(data-service): expose serverClosed event VSCODE-536 * fest: listen on client close * refactor: bump log id * refactor: without disconnect
1 parent 9972824 commit c2aa785

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

packages/data-service/src/data-service.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ export type ExplainExecuteOptions = ExecutionOptions & {
138138
export interface DataServiceEventMap {
139139
topologyDescriptionChanged: (evt: TopologyDescriptionChangedEvent) => void;
140140
connectionInfoSecretsChanged: () => void;
141+
close: () => void;
141142
}
142143

143144
export type UpdatePreviewChange = {
@@ -1017,7 +1018,7 @@ class DataServiceImpl extends WithLogContext implements DataService {
10171018
}
10181019

10191020
once(...args: Parameters<DataService['on']>) {
1020-
this._emitter.on(...args);
1021+
this._emitter.once(...args);
10211022
return this;
10221023
}
10231024

@@ -2276,6 +2277,11 @@ class DataServiceImpl extends WithLogContext implements DataService {
22762277
});
22772278
});
22782279

2280+
client.on('close', () => {
2281+
this._logger.info(mongoLogId(1_001_000_315), 'Client is closed');
2282+
this._emitter.emit('close');
2283+
});
2284+
22792285
client.on('serverClosed', (evt: ServerClosedEvent) => {
22802286
this._logger.info(mongoLogId(1_001_000_020), 'Server closed', {
22812287
address: evt.address,

0 commit comments

Comments
 (0)