UNPKG

@arkts/headless-jsonrpc

Version:

Simple and Fast headless JSON-RPC communication libraries support advanced features such as retry and timeout.

38 lines (36 loc) 1.14 kB
//#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 Object.defineProperty(exports, 'createVSCodeWebviewAdapter', { enumerable: true, get: function () { return createVSCodeWebviewAdapter; } });