fix: use ElectronConnectionHandler to connect ide updater services (#2697)

This commit is contained in:
Giacomo Cusinato 2025-04-09 13:58:47 +07:00 committed by GitHub
parent e3319dab1a
commit 2f0414a5a1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,5 +1,5 @@
import { ConnectionHandler } from '@theia/core/lib/common/messaging/handler'; import { ElectronConnectionHandler } from '@theia/core/lib/electron-main/messaging/electron-connection-handler';
import { JsonRpcConnectionHandler } from '@theia/core/lib/common/messaging/proxy-factory'; import { RpcConnectionHandler } from '@theia/core/lib/common/messaging/proxy-factory';
import { ElectronMainWindowService } from '@theia/core/lib/electron-common/electron-main-window-service'; import { ElectronMainWindowService } from '@theia/core/lib/electron-common/electron-main-window-service';
import { TheiaMainApi } from '@theia/core/lib/electron-main/electron-api-main'; import { TheiaMainApi } from '@theia/core/lib/electron-main/electron-api-main';
import { import {
@ -33,18 +33,15 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => {
bind(IDEUpdaterImpl).toSelf().inSingletonScope(); bind(IDEUpdaterImpl).toSelf().inSingletonScope();
bind(IDEUpdater).toService(IDEUpdaterImpl); bind(IDEUpdater).toService(IDEUpdaterImpl);
bind(ElectronMainApplicationContribution).toService(IDEUpdater); bind(ElectronMainApplicationContribution).toService(IDEUpdater);
bind(ConnectionHandler) bind(ElectronConnectionHandler)
.toDynamicValue( .toDynamicValue(
(context) => (context) =>
new JsonRpcConnectionHandler<IDEUpdaterClient>( new RpcConnectionHandler<IDEUpdaterClient>(IDEUpdaterPath, (client) => {
IDEUpdaterPath, const server = context.container.get<IDEUpdater>(IDEUpdater);
(client) => { server.setClient(client);
const server = context.container.get<IDEUpdater>(IDEUpdater); client.onDidCloseConnection(() => server.disconnectClient(client));
server.setClient(client); return server;
client.onDidCloseConnection(() => server.disconnectClient(client)); })
return server;
}
)
) )
.inSingletonScope(); .inSingletonScope();