mirror of
https://github.com/dream-pep/koring-launcher.git
synced 2026-09-12 05:45:18 +08:00
Replace the Tauri/sidecar architecture with an Electron main process. Adds an electron/ directory (main, preload, handlers, core integrations for @xmcl/*), electron-builder.yml, TypeScript electron config and declarations, and updated IPC utilities (ipc.ts) so frontend uses ipcRenderer/ipcMain. Removes Tauri sidecar and src-tauri artifacts, deletes sidecar sources and keys, updates .gitignore, VSCode recommendations, package scripts and icons, and updates documentation (README, AGENTS, DEV) and frontend stores/apis to reflect the Electron-based architecture and config/auth persistence changes.
75 lines
3.3 KiB
JavaScript
75 lines
3.3 KiB
JavaScript
"use strict";
|
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.registerInstallHandlers = registerInstallHandlers;
|
|
const electron_1 = __importDefault(require("electron"));
|
|
const installer_1 = require("../core/installer");
|
|
const { ipcMain } = electron_1.default;
|
|
function registerInstallHandlers(win) {
|
|
ipcMain.handle('install:version-list', async (_event, payload) => {
|
|
try {
|
|
const data = await (0, installer_1.getVersionList)(payload.type);
|
|
return { success: true, data, error: null };
|
|
}
|
|
catch (e) {
|
|
return { success: false, data: null, error: String(e) };
|
|
}
|
|
});
|
|
ipcMain.handle('install:forge-version-list', async (_event, payload) => {
|
|
try {
|
|
const data = await (0, installer_1.getForgeVersions)(payload.mcVersion);
|
|
return { success: true, data, error: null };
|
|
}
|
|
catch (e) {
|
|
return { success: false, data: null, error: String(e) };
|
|
}
|
|
});
|
|
ipcMain.handle('install:fabric-version-list', async (_event, payload) => {
|
|
try {
|
|
const data = await (0, installer_1.getFabricVersions)(payload.mcVersion);
|
|
return { success: true, data, error: null };
|
|
}
|
|
catch (e) {
|
|
return { success: false, data: null, error: String(e) };
|
|
}
|
|
});
|
|
ipcMain.handle('install:minecraft', async (_event, payload) => {
|
|
try {
|
|
const requestId = `install-mc-${Date.now()}`;
|
|
(0, installer_1.installMinecraft)(payload.version, payload.gamePath, payload.javaPath, payload.downloadThreads, {
|
|
onProgress: (progress) => {
|
|
win.mainWindow?.webContents.send('install:progress', { requestId, ...progress });
|
|
},
|
|
}).then((result) => {
|
|
win.mainWindow?.webContents.send('install:complete', { requestId, ...result });
|
|
}).catch((err) => {
|
|
win.mainWindow?.webContents.send('install:error', { requestId, error: String(err) });
|
|
});
|
|
return { success: true, data: { requestId }, error: null };
|
|
}
|
|
catch (e) {
|
|
return { success: false, data: null, error: String(e) };
|
|
}
|
|
});
|
|
ipcMain.handle('install:mod-loader', async (_event, payload) => {
|
|
try {
|
|
const requestId = `install-loader-${Date.now()}`;
|
|
(0, installer_1.installModLoader)(payload.mcVersion, payload.gamePath, payload.loaderType, payload.loaderVersion, payload.javaPath, {
|
|
onProgress: (progress) => {
|
|
win.mainWindow?.webContents.send('install:progress', { requestId, ...progress });
|
|
},
|
|
}).then((result) => {
|
|
win.mainWindow?.webContents.send('install:complete', { requestId, ...result });
|
|
}).catch((err) => {
|
|
win.mainWindow?.webContents.send('install:error', { requestId, error: String(err) });
|
|
});
|
|
return { success: true, data: { requestId }, error: null };
|
|
}
|
|
catch (e) {
|
|
return { success: false, data: null, error: String(e) };
|
|
}
|
|
});
|
|
}
|