Files
spring-tools/vscode-extensions/vscode-spring-boot/lib/apiManager.ts
Kris De Volder 006cbd0721 Refine api for connected process listeners
Events now include some extra information instead of just processKey.
2022-05-09 16:12:59 -07:00

41 lines
2.0 KiB
TypeScript

import { commands, Uri } from "vscode";
import { Emitter, LanguageClient } from "vscode-languageclient/node";
import { ExtensionAPI } from "./api";
import { LiveProcess, LiveProcessConnectedNotification, LiveProcessDisconnectedNotification, LiveProcessUpdatedNotification } from "./notification";
export class ApiManager {
public api: ExtensionAPI;
private onDidLiveProcessConnectEmitter: Emitter<LiveProcess> = new Emitter<LiveProcess>();
private onDidLiveProcessDisconnectEmitter: Emitter<LiveProcess> = new Emitter<LiveProcess>();
private onDidLiveProcessUpdateEmitter: Emitter<LiveProcess> = new Emitter<LiveProcess>();
public constructor(client: LanguageClient) {
const onDidLiveProcessConnect = this.onDidLiveProcessConnectEmitter.event;
const onDidLiveProcessDisconnect = this.onDidLiveProcessDisconnectEmitter.event;
const onDidLiveProcessUpdate = this.onDidLiveProcessUpdateEmitter.event;
const COMMAND_LIVEDATA_GET = "sts/livedata/get";
const getLiveProcessData = async (query) => {
return await commands.executeCommand(COMMAND_LIVEDATA_GET, query);
}
const COMMAND_LIVEDATA_LIST_CONNECTED = "sts/livedata/listConnected"
const listConnectedProcesses = async () : Promise<LiveProcess[]> => {
return await commands.executeCommand(COMMAND_LIVEDATA_LIST_CONNECTED);
}
client.onNotification(LiveProcessConnectedNotification.type, (process: LiveProcess) => this.onDidLiveProcessConnectEmitter.fire(process));
client.onNotification(LiveProcessDisconnectedNotification.type, (process: LiveProcess) => this.onDidLiveProcessDisconnectEmitter.fire(process));
client.onNotification(LiveProcessUpdatedNotification.type, (process: LiveProcess) => this.onDidLiveProcessUpdateEmitter.fire(process));
this.api = {
client,
onDidLiveProcessConnect,
onDidLiveProcessDisconnect,
onDidLiveProcessUpdate,
getLiveProcessData,
listConnectedProcesses,
};
}
}