-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpreload.js
More file actions
40 lines (39 loc) · 2.21 KB
/
preload.js
File metadata and controls
40 lines (39 loc) · 2.21 KB
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
const { contextBridge, ipcRenderer } = require("electron");
contextBridge.exposeInMainWorld("electronAPI", {
// Storage
storageGet: () => ipcRenderer.invoke("storage-get"),
storageSet: (value) => ipcRenderer.invoke("storage-set", value),
storageSetSync: (value) => ipcRenderer.sendSync("storage-set-sync", value),
// Encryption
checkEncryption: () => ipcRenderer.invoke("check-encryption"),
unlockMaster: (pw) => ipcRenderer.invoke("unlock-master", pw),
enableEncryption: (pw, hint) => ipcRenderer.invoke("enable-encryption", pw, hint),
disableEncryption: (pw) => ipcRenderer.invoke("disable-encryption", pw),
changeMasterPassword: (oldPw, newPw) => ipcRenderer.invoke("change-master-password", oldPw, newPw),
checkPasswordStrength: (pw) => ipcRenderer.invoke("check-password-strength", pw),
lockApp: () => ipcRenderer.invoke("lock-app"),
setHint: (hint) => ipcRenderer.invoke("set-hint", hint),
// Notebook encryption
encryptNotebookSections: (json, pw) => ipcRenderer.invoke("encrypt-notebook-sections", json, pw),
decryptNotebookSections: (blob, pw) => ipcRenderer.invoke("decrypt-notebook-sections", blob, pw),
reencryptNotebookSections: (json, nbKeyId) => ipcRenderer.invoke("reencrypt-notebook-sections", json, nbKeyId),
forgetNotebookKey: (nbKeyId) => ipcRenderer.invoke("forget-notebook-key", nbKeyId),
// Backup
exportBackup: () => ipcRenderer.invoke("export-backup"),
restoreBackup: () => ipcRenderer.invoke("restore-backup"),
// Config
getConfig: () => ipcRenderer.invoke("get-config"),
setConfig: (key, value) => ipcRenderer.invoke("set-config", key, value),
checkForUpdates: () => ipcRenderer.invoke("check-for-updates"),
// Export / Print
exportHTML: (title, html, isLocked) => ipcRenderer.invoke("export-html", title, html, !!isLocked),
exportText: (title, text, isLocked) => ipcRenderer.invoke("export-text", title, text, !!isLocked),
printWithWarning: (isLocked) => ipcRenderer.invoke("print-with-warning", isLocked),
openDataFolder: () => ipcRenderer.invoke("open-data-folder"),
// Menu
onMenuAction: (cb) => {
const handler = (_e, action) => cb(action);
ipcRenderer.on("menu-action", handler);
return () => ipcRenderer.removeListener("menu-action", handler);
},
});