mirror of
https://github.com/Elvanos/fantasia-archive.git
synced 2024-09-29 16:51:21 +13:00
41 lines
1.7 KiB
TypeScript
41 lines
1.7 KiB
TypeScript
/**
|
|
* This file is used specifically for security reasons.
|
|
* Here you can access Nodejs stuff and inject functionality into
|
|
* the renderer thread (accessible there through the "window" object)
|
|
*
|
|
* WARNING!
|
|
* If you import anything from node_modules, then make sure that the package is specified
|
|
* in package.json > dependencies and NOT in devDependencies
|
|
*
|
|
* Example (injects window.myAPI.doAThing() into renderer thread):
|
|
*
|
|
* import { contextBridge } from 'electron'
|
|
*
|
|
* contextBridge.exposeInMainWorld('myAPI', {
|
|
* doAThing: () => {}
|
|
* })
|
|
*
|
|
* WARNING!
|
|
* If accessing Node functionality (like importing @electron/remote) then in your
|
|
* electron-main.ts you will need to set the following when you instantiate BrowserWindow:
|
|
*
|
|
* mainWindow = new BrowserWindow({
|
|
* // ...
|
|
* webPreferences: {
|
|
* // ...
|
|
* sandbox: false // <-- to be able to import @electron/remote in preload script
|
|
* }
|
|
* }
|
|
*/
|
|
|
|
import { contextBridge } from 'electron'
|
|
|
|
import { faWindowControlAPI } from 'src-electron/customContentBridgeAPIs/faWindowControlAPI'
|
|
import { extraEnvVariablesAPI } from 'src-electron/customContentBridgeAPIs/extraEnvVariablesAPI'
|
|
import { faDevToolsControlAPI } from 'src-electron/customContentBridgeAPIs/faDevToolsControlAPI'
|
|
import { faExternalLinksManagerAPI } from 'app/src-electron/customContentBridgeAPIs/faExternalLinksManagerAPI'
|
|
|
|
contextBridge.exposeInMainWorld('faWindowControlAPI', faWindowControlAPI)
|
|
contextBridge.exposeInMainWorld('faDevToolsControlAPI', faDevToolsControlAPI)
|
|
contextBridge.exposeInMainWorld('faExternalLinksManagerAPI', faExternalLinksManagerAPI)
|
|
contextBridge.exposeInMainWorld('extraEnvVariables', extraEnvVariablesAPI)
|