@arkts/headless-jsonrpc
Version:
Simple and Fast headless JSON-RPC communication libraries support advanced features such as retry and timeout.
33 lines (32 loc) • 1.08 kB
JavaScript
//#region src/adapters/vscode-webview.ts
var VSCodeWebviewAdapter = class {
constructor(options) {
this.options = options;
}
async sendEvent(request) {
await this.options.webview.postMessage(this.options.serialize ? this.options.serialize(request) : JSON.stringify(request));
}
onEvent(callback) {
const listener = this.options.webview.onDidReceiveMessage((message) => {
callback(this.options.deserialize ? this.options.deserialize(message) : JSON.parse(message));
});
this.options.context?.subscriptions.push(listener);
}
};
function createVSCodeWebviewAdapter(webviewOrOptions, context, extraOptions) {
if ("webview" in webviewOrOptions) return new VSCodeWebviewAdapter({
webview: webviewOrOptions.webview,
context: webviewOrOptions.context,
serialize: webviewOrOptions.serialize,
deserialize: webviewOrOptions.deserialize,
...extraOptions
});
return new VSCodeWebviewAdapter({
webview: webviewOrOptions,
context,
...extraOptions
});
}
//#endregion
export { createVSCodeWebviewAdapter };
//# sourceMappingURL=vscode-webview-B5bu8aPw.js.map