summaryrefslogtreecommitdiff
path: root/sdk/main.js
blob: e0f571cdac305c15eb895fe6e2a78addd605bf24 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
console.log("Alicorn SDK")
const { contextBridge, ipcRenderer } = require('electron');
global.windowId = null;

let host = require('@electron/remote').getCurrentWindow().webContents.executeJavaScript;

ipcRenderer.on('window-id', (event, data) => {
    console.log("[SDK] Alicorn Window ID: " + data);
    contextBridge.exposeInMainWorld('AlicornWindowID', data);
    global.windowId = data;
})

contextBridge.exposeInMainWorld('AlicornRoot', require('path').dirname(__dirname));
contextBridge.exposeInMainWorld('AlicornKeyboardHandler', require('fs').readFileSync("sdk/keyboard.js").toString());

contextBridge.exposeInMainWorld('AlicornSDK', {
    init: async () => {
        let api = {};

        console.log("[SDK] Establishing features set... This may take a while.");
        let features = await host("Object.keys(AlicornSDK)");
        console.log("[SDK] Established features set");

        for (let feature of features) {
            api[feature] = (options) => {
                return host("AlicornSDK[" + JSON.stringify(feature) + "](\"" + windowId + "\", " + JSON.stringify(options) + ");");
            };
        }

        return api;
    }
})