@arkts/headless-jsonrpc
Version:
Simple and Fast headless JSON-RPC communication libraries support advanced features such as retry and timeout.
25 lines (23 loc) • 751 B
JavaScript
//#region src/adapters/vscode-browser-window.ts
var VSCodeBrowserWindowAdapter = class {
_vscodeApi;
get vscodeApi() {
return this._vscodeApi ??= acquireVsCodeApi();
}
constructor(options = {}) {
this.options = options;
}
sendEvent(request) {
this.vscodeApi.postMessage(this.options.serialize ? this.options.serialize(request) : JSON.stringify(request));
}
onEvent(callback) {
window.addEventListener("message", (event) => {
callback(this.options.deserialize ? this.options.deserialize(event.data) : JSON.parse(event.data));
});
}
};
function createVSCodeBrowserWindowAdapter(options) {
return new VSCodeBrowserWindowAdapter(options);
}
//#endregion
exports.createVSCodeBrowserWindowAdapter = createVSCodeBrowserWindowAdapter;