1.0.3 • Published 2 years ago

vscode-message-management v1.0.3

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

What is VSCode Message Management?

VSCode Message Management is a library that has ability to gain response of a request between extension and webview.

// types.d.ts
interface RequestFromWebview {
  left: number;
  right: number;
}
interface ResponseFromExtension {
  result: number;
}
interface RequestFromExtension {
  msg: string;
}
interface ResponseFromWebview {
  ok: boolean;
}

Extension

import * as vscode from "vscode";
import { extensionMessenger } from "vscode-message-management";

const webviewPanel = vscode.window.createWebviewPanel(
  "myWebview",
  "myWebview",
  vscode.ViewColumn.Active,
  {
    enableScripts: true,
  }
)

const messenger = new extensionMessenger.Messenger(webviewPanel)

messenger.request<RequestFromExtension, ResponseFromWebview>(
  "helloWorld",
  {msg: "success"}
).then(console.log) // { ok: true }

// recept a request from webview and send a response
messenger.bind<RequestFromWebview, ResponseFromExtension>(
  "addition", // each event id can be only bound once
  (data) => {
    console.log(data) // { left: 1, right: 2 }
    return { result: data.left + data.right }
  }
)

Webview

import { webviewMessenger } from "vscode-message-management";

const vscode = acquireVsCodeApi()
const messenger = new webviewMessenger.Messenger(vscode)

// recept a request from extension and send a response
messenger.bind<RequestFromExtension, ResponseFromWebview>(
  "helloWorld", // each event id can be only bound once
  (data) => {
    console.log(data.msg) // success
    return { ok: true }
  }
)

// send a request to extension and gain a response
messenger.request<RequestFromWebview, ResponseFromExtension>(
  "addition",
  { left: 1, right: 2 }
).then(console.log) // { result: 3 }
1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago