-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathpreload.js
58 lines (57 loc) · 2.73 KB
/
preload.js
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
const { contextBridge, ipcRenderer } = require("electron");
// endpoints to be used as API for communication between the renderer process and main process
contextBridge.exposeInMainWorld("glimpseAPI", {
onShowAttributes: (callback) => {
ipcRenderer.on("show-attributes", (_event, showBool) => callback(showBool));
return () => ipcRenderer.removeAllListeners("show-attributes");
},
onUpdateData: (callback) => {
ipcRenderer.on("update-data", (_event, data) => callback(data));
return () => ipcRenderer.removeAllListeners("update-data");
},
onAddNodeEvent: (callback) => {
ipcRenderer.on("add-node", (_event, newNodeData) => callback(newNodeData));
return () => ipcRenderer.removeAllListeners("add-node");
},
onAddEdgeEvent: (callback) => {
ipcRenderer.on("add-edge", (_event, newEdgeData) => callback(newEdgeData));
return () => ipcRenderer.removeAllListeners("add-edge");
},
onDeleteNodeEvent: (callback) => {
ipcRenderer.on("delete-node", (_event, nodeID) => callback(nodeID));
return () => ipcRenderer.removeAllListeners("delete-node");
},
onDeleteEdgeEvent: (callback) => {
ipcRenderer.on("delete-edge", (_event, edgeID) => callback(edgeID));
return () => ipcRenderer.removeAllListeners("delete-edge");
},
onShowVisOptions: (callback) => {
ipcRenderer.on("show-vis-options", () => callback());
return () => ipcRenderer.removeAllListeners("show-vis-options");
},
onExportTheme: (callback) => {
ipcRenderer.on("export-theme", () => callback());
return () => ipcRenderer.removeAllListeners("export-theme");
},
validate: (jsonFilePath) => ipcRenderer.invoke("validate", jsonFilePath),
onReadJsonFile: (filepath) => ipcRenderer.invoke("read-json-file", filepath),
getThemeJsonData: (path) => ipcRenderer.invoke("getThemeJsonData", path),
exportTheme: (themeData) => ipcRenderer.send("exportTheme", themeData),
onExtract: (callback) => {
ipcRenderer.on("extract", () => callback());
return () => ipcRenderer.removeAllListeners("extract");
},
onGetMetrics: (callback) => {
ipcRenderer.on("getGraphMetrics", () => callback());
return () => ipcRenderer.removeAllListeners("getMetrics");
},
json2glm: (jsonData) => ipcRenderer.send("json2glm", jsonData),
glm2json: (paths) => ipcRenderer.invoke("glm2json", paths),
getTheme: () => ipcRenderer.invoke("getSelectedTheme"),
getConfig: () => ipcRenderer.invoke("getConfig"),
validateTheme: (jsonFilePath) => ipcRenderer.invoke("validate-theme", jsonFilePath),
getEmbeddingsPlot: (callback) => {
ipcRenderer.on("embeddings_plot", (e, buffer) => callback(buffer));
return () => ipcRenderer.removeAllListeners("embeddings_plot");
},
});