figwire
Version:
Bidirectional IPC communication between UI and core in Figma plugins. Lightweight and typed.
21 lines (18 loc) • 631 B
JavaScript
import { A as API, c as createClient } from './create-client-Djmi8zIv.js';
const uiPostFn = (message) => window.parent.postMessage({ pluginMessage: message }, "*");
const uiReceiveFn = (callback) => {
window.addEventListener("message", (message) => {
callback(message.data.pluginMessage);
});
};
const uiApiInstance = new API("ui", uiPostFn, uiReceiveFn);
function defineApi(methods) {
for (const [name, method] of Object.entries(methods)) {
uiApiInstance.registerMethod(name, method);
}
return methods;
}
function client() {
return createClient(uiApiInstance);
}
export { client, defineApi, uiApiInstance };