* feat: move necessary files to jan root Signed-off-by: James <james@jan.ai> * chore: check model dir --------- Signed-off-by: James <james@jan.ai> Co-authored-by: James <james@jan.ai> Co-authored-by: Louis <louis@jan.ai>
139 lines
6.1 KiB
TypeScript
139 lines
6.1 KiB
TypeScript
/**
|
|
* Exposes a set of APIs to the renderer process via the contextBridge object.
|
|
* @remarks
|
|
* This module is used to make Pluggable Electron's facade available to the renderer on window.plugins.
|
|
* @module preload
|
|
*/
|
|
|
|
/**
|
|
* Exposes a set of APIs to the renderer process via the contextBridge object.
|
|
* @remarks
|
|
* This module is used to make Pluggable Electron's facade available to the renderer on window.plugins.
|
|
* @function useFacade
|
|
* @memberof module:preload
|
|
* @returns {void}
|
|
*/
|
|
|
|
/**
|
|
* Exposes a set of APIs to the renderer process via the contextBridge object.
|
|
* @remarks
|
|
* This module is used to make Pluggable Electron's facade available to the renderer on window.plugins.
|
|
* @namespace electronAPI
|
|
* @memberof module:preload
|
|
* @property {Function} invokePluginFunc - Invokes a plugin function with the given arguments.
|
|
* @property {Function} setNativeThemeLight - Sets the native theme to light.
|
|
* @property {Function} setNativeThemeDark - Sets the native theme to dark.
|
|
* @property {Function} setNativeThemeSystem - Sets the native theme to system.
|
|
* @property {Function} basePlugins - Returns the base plugins.
|
|
* @property {Function} pluginPath - Returns the plugin path.
|
|
* @property {Function} appDataPath - Returns the app data path.
|
|
* @property {Function} reloadPlugins - Reloads the plugins.
|
|
* @property {Function} appVersion - Returns the app version.
|
|
* @property {Function} openExternalUrl - Opens the given URL in the default browser.
|
|
* @property {Function} relaunch - Relaunches the app.
|
|
* @property {Function} openAppDirectory - Opens the app directory.
|
|
* @property {Function} deleteFile - Deletes the file at the given path.
|
|
* @property {Function} isDirectory - Returns true if the file at the given path is a directory.
|
|
* @property {Function} getUserSpace - Returns the user space.
|
|
* @property {Function} readFile - Reads the file at the given path.
|
|
* @property {Function} writeFile - Writes the given data to the file at the given path.
|
|
* @property {Function} listFiles - Lists the files in the directory at the given path.
|
|
* @property {Function} mkdir - Creates a directory at the given path.
|
|
* @property {Function} rmdir - Removes a directory at the given path recursively.
|
|
* @property {Function} installRemotePlugin - Installs the remote plugin with the given name.
|
|
* @property {Function} downloadFile - Downloads the file at the given URL to the given path.
|
|
* @property {Function} pauseDownload - Pauses the download of the file with the given name.
|
|
* @property {Function} resumeDownload - Resumes the download of the file with the given name.
|
|
* @property {Function} abortDownload - Aborts the download of the file with the given name.
|
|
* @property {Function} onFileDownloadUpdate - Registers a callback to be called when a file download is updated.
|
|
* @property {Function} onFileDownloadError - Registers a callback to be called when a file download encounters an error.
|
|
* @property {Function} onFileDownloadSuccess - Registers a callback to be called when a file download is completed successfully.
|
|
* @property {Function} onAppUpdateDownloadUpdate - Registers a callback to be called when an app update download is updated.
|
|
* @property {Function} onAppUpdateDownloadError - Registers a callback to be called when an app update download encounters an error.
|
|
* @property {Function} onAppUpdateDownloadSuccess - Registers a callback to be called when an app update download is completed successfully.
|
|
*/
|
|
|
|
// Make Pluggable Electron's facade available to the renderer on window.plugins
|
|
import { useFacade } from './core/plugin/facade'
|
|
|
|
useFacade()
|
|
|
|
const { contextBridge, ipcRenderer } = require('electron')
|
|
|
|
contextBridge.exposeInMainWorld('electronAPI', {
|
|
invokePluginFunc: (plugin: any, method: any, ...args: any[]) =>
|
|
ipcRenderer.invoke('invokePluginFunc', plugin, method, ...args),
|
|
|
|
setNativeThemeLight: () => ipcRenderer.invoke('setNativeThemeLight'),
|
|
|
|
setNativeThemeDark: () => ipcRenderer.invoke('setNativeThemeDark'),
|
|
|
|
setNativeThemeSystem: () => ipcRenderer.invoke('setNativeThemeSystem'),
|
|
|
|
basePlugins: () => ipcRenderer.invoke('basePlugins'),
|
|
|
|
pluginPath: () => ipcRenderer.invoke('pluginPath'),
|
|
|
|
appDataPath: () => ipcRenderer.invoke('appDataPath'),
|
|
|
|
reloadPlugins: () => ipcRenderer.invoke('reloadPlugins'),
|
|
|
|
appVersion: () => ipcRenderer.invoke('appVersion'),
|
|
|
|
openExternalUrl: (url: string) => ipcRenderer.invoke('openExternalUrl', url),
|
|
|
|
relaunch: () => ipcRenderer.invoke('relaunch'),
|
|
|
|
openAppDirectory: () => ipcRenderer.invoke('openAppDirectory'),
|
|
|
|
deleteFile: (filePath: string) => ipcRenderer.invoke('deleteFile', filePath),
|
|
|
|
isDirectory: (filePath: string) => ipcRenderer.invoke('isDirectory', filePath),
|
|
|
|
getUserSpace: () => ipcRenderer.invoke('getUserSpace'),
|
|
|
|
readFile: (path: string) => ipcRenderer.invoke('readFile', path),
|
|
|
|
writeFile: (path: string, data: string) =>
|
|
ipcRenderer.invoke('writeFile', path, data),
|
|
|
|
listFiles: (path: string) => ipcRenderer.invoke('listFiles', path),
|
|
|
|
mkdir: (path: string) => ipcRenderer.invoke('mkdir', path),
|
|
|
|
rmdir: (path: string) => ipcRenderer.invoke('rmdir', path),
|
|
|
|
installRemotePlugin: (pluginName: string) =>
|
|
ipcRenderer.invoke('installRemotePlugin', pluginName),
|
|
|
|
downloadFile: (url: string, path: string) =>
|
|
ipcRenderer.invoke('downloadFile', url, path),
|
|
|
|
pauseDownload: (fileName: string) =>
|
|
ipcRenderer.invoke('pauseDownload', fileName),
|
|
|
|
resumeDownload: (fileName: string) =>
|
|
ipcRenderer.invoke('resumeDownload', fileName),
|
|
|
|
abortDownload: (fileName: string) =>
|
|
ipcRenderer.invoke('abortDownload', fileName),
|
|
|
|
onFileDownloadUpdate: (callback: any) =>
|
|
ipcRenderer.on('FILE_DOWNLOAD_UPDATE', callback),
|
|
|
|
onFileDownloadError: (callback: any) =>
|
|
ipcRenderer.on('FILE_DOWNLOAD_ERROR', callback),
|
|
|
|
onFileDownloadSuccess: (callback: any) =>
|
|
ipcRenderer.on('FILE_DOWNLOAD_COMPLETE', callback),
|
|
|
|
onAppUpdateDownloadUpdate: (callback: any) =>
|
|
ipcRenderer.on('APP_UPDATE_PROGRESS', callback),
|
|
|
|
onAppUpdateDownloadError: (callback: any) =>
|
|
ipcRenderer.on('APP_UPDATE_ERROR', callback),
|
|
|
|
onAppUpdateDownloadSuccess: (callback: any) =>
|
|
ipcRenderer.on('APP_UPDATE_COMPLETE', callback),
|
|
})
|