Skip to main content

Intro

JSDoc sucks ngl.

Exporting an object from main to renderer

const { app, BrowserWindow } = require("electron");const path = require("path");const { MainBridge } = require("electronbb");let mainBridge = new MainBridge();function createWindow() {    const win = new BrowserWindow({        width: 800,        height: 600,        webPreferences: {            preload: path.join(__dirname, "preload.js"),        },    });    mainBridge.export("exported", {        a: "b",        c: 0xd,    });    win.loadFile(path.join(__dirname, "index.html"));}app.whenReady().then(() => {    createWindow();});

Importing an object from main in renderer

const { RendererBridge } = require("electronbb");let rendererBridge = new RendererBridge();async function getThings() {    const exported = await rendererBridge.Get("exported"); // name same as in export    console.log(exported.a); // b}getThings();

You can also do it synchronously:

const { RendererBridge } = require("electronbb");let rendererBridge = new RendererBridge();function getThings() {    const exported = rendererBridge.GetSync("exported"); // name same as in export    console.log(exported.a); // b}getThings();

Exporting an object from renderer to main

const { RendererBridge } = require("electronbb");
let rendererBridge = new RendererBridge();

rendererBridge.Export("yourObject", {
message: "Hello Main",
});

Importing an object from renderer in main

const { app, BrowserWindow } = require("electron");
const path = require("path");
const { MainBridge } = require("electronbb");

async function createWindow() {
const win = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
preload: path.join(__dirname, "preload.js"),
sandbox: false,
},
});

const mainBridge = new MainBridge();
await win.loadFile(path.join(__dirname, "index.html"));
const object = await mainBridge.Get("yourObject");

console.log(object.message); // Hello Main
}

app.whenReady().then(() => {
createWindow();
});