figwire
Version:
Bidirectional IPC communication between UI and core in Figma plugins. Lightweight and typed.
25 lines (21 loc) • 707 B
JavaScript
var createClient = require('./create-client-DCev-ISb.cjs');
const uiPostFn = (message) => window.parent.postMessage({ pluginMessage: message }, "*");
const uiReceiveFn = (callback) => {
window.addEventListener("message", (message) => {
callback(message.data.pluginMessage);
});
};
const uiApiInstance = new createClient.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.createClient(uiApiInstance);
}
exports.client = client;
exports.defineApi = defineApi;
exports.uiApiInstance = uiApiInstance;
;