refactor: clean app dependencies

This commit is contained in:
Louis 2023-10-03 11:11:36 +07:00 committed by Louis
parent cfb6e03d98
commit fd512f2cee
4 changed files with 22 additions and 25 deletions

View File

@ -1,30 +1,32 @@
import { ipcRenderer, contextBridge } from "electron" const { ipcRenderer, contextBridge } = require("electron");
export default function useFacade() { function useFacade() {
const interfaces = { const interfaces = {
install(plugins) { install(plugins) {
return ipcRenderer.invoke('pluggable:install', plugins) return ipcRenderer.invoke("pluggable:install", plugins);
}, },
uninstall(plugins, reload) { uninstall(plugins, reload) {
return ipcRenderer.invoke('pluggable:uninstall', plugins, reload) return ipcRenderer.invoke("pluggable:uninstall", plugins, reload);
}, },
getActive() { getActive() {
return ipcRenderer.invoke('pluggable:getActivePlugins') return ipcRenderer.invoke("pluggable:getActivePlugins");
}, },
update(plugins, reload) { update(plugins, reload) {
return ipcRenderer.invoke('pluggable:update', plugins, reload) return ipcRenderer.invoke("pluggable:update", plugins, reload);
}, },
updatesAvailable(plugin) { updatesAvailable(plugin) {
return ipcRenderer.invoke('pluggable:updatesAvailable', plugin) return ipcRenderer.invoke("pluggable:updatesAvailable", plugin);
}, },
toggleActive(plugin, active) { toggleActive(plugin, active) {
return ipcRenderer.invoke('pluggable:togglePluginActive', plugin, active) return ipcRenderer.invoke("pluggable:togglePluginActive", plugin, active);
}, },
} };
if (contextBridge) { if (contextBridge) {
contextBridge.exposeInMainWorld('pluggableElectronIpc', interfaces) contextBridge.exposeInMainWorld("pluggableElectronIpc", interfaces);
} }
return interfaces return interfaces;
} }
module.exports = useFacade;

View File

@ -6,7 +6,6 @@ import { init } from "./core/plugin-manager/pluginMgr";
import { setupMenu } from "./utils/menu"; import { setupMenu } from "./utils/menu";
import { dispose } from "./utils/disposable"; import { dispose } from "./utils/disposable";
const isDev = require("electron-is-dev");
const request = require("request"); const request = require("request");
const progress = require("request-progress"); const progress = require("request-progress");
const { autoUpdater } = require("electron-updater"); const { autoUpdater } = require("electron-updater");
@ -49,9 +48,9 @@ function createMainWindow() {
}, },
}); });
const startURL = isDev const startURL = app.isPackaged
? "http://localhost:3000" ? `file://${join(__dirname, "../renderer/index.html")}`
: `file://${join(__dirname, "../renderer/index.html")}`; : "http://localhost:3000";
mainWindow.loadURL(startURL); mainWindow.loadURL(startURL);
@ -60,7 +59,7 @@ function createMainWindow() {
if (process.platform !== "darwin") app.quit(); if (process.platform !== "darwin") app.quit();
}); });
if (isDev) mainWindow.webContents.openDevTools(); if (!app.isPackaged) mainWindow.webContents.openDevTools();
} }
function handleAppUpdates() { function handleAppUpdates() {
@ -127,7 +126,9 @@ function handleIPCs() {
const basePluginPath = join( const basePluginPath = join(
__dirname, __dirname,
"../", "../",
isDev ? "/core/pre-install" : "../app.asar.unpacked/core/pre-install" app.isPackaged
? "../app.asar.unpacked/core/pre-install"
: "/core/pre-install"
); );
return readdirSync(basePluginPath) return readdirSync(basePluginPath)
.filter((file) => extname(file) === ".tgz") .filter((file) => extname(file) === ".tgz")

View File

@ -37,22 +37,17 @@
"postinstall": "electron-builder install-app-deps" "postinstall": "electron-builder install-app-deps"
}, },
"dependencies": { "dependencies": {
"electron-is-dev": "^2.0.0",
"electron-store": "^8.1.0", "electron-store": "^8.1.0",
"electron-updater": "^6.1.4", "electron-updater": "^6.1.4",
"node-llama-cpp": "^2.4.1",
"pluggable-electron": "^0.6.0",
"request": "^2.88.2", "request": "^2.88.2",
"request-progress": "^3.0.0" "request-progress": "^3.0.0"
}, },
"devDependencies": { "devDependencies": {
"@typescript-eslint/eslint-plugin": "^6.7.3", "@typescript-eslint/eslint-plugin": "^6.7.3",
"@typescript-eslint/parser": "^6.7.3", "@typescript-eslint/parser": "^6.7.3",
"concurrently": "^8.2.1",
"electron": "26.2.1", "electron": "26.2.1",
"electron-builder": "^24.6.4", "electron-builder": "^24.6.4",
"eslint-plugin-react": "^7.33.2", "eslint-plugin-react": "^7.33.2"
"wait-on": "^7.0.1"
}, },
"installConfig": { "installConfig": {
"hoistingLimits": "workspaces" "hoistingLimits": "workspaces"

View File

@ -1,7 +1,6 @@
/* eslint-disable react-hooks/rules-of-hooks */
// Make Pluggable Electron's facade available to the renderer on window.plugins // Make Pluggable Electron's facade available to the renderer on window.plugins
//@ts-ignore //@ts-ignore
const useFacade = require("pluggable-electron/facade"); const useFacade = require("../core/plugin-manager/facade");
useFacade(); useFacade();
//@ts-ignore //@ts-ignore
const { contextBridge, ipcRenderer } = require("electron"); const { contextBridge, ipcRenderer } = require("electron");