mirror of
https://github.com/dream-pep/koring-launcher.git
synced 2026-09-12 05:45:18 +08:00
Migrate app from Tauri to Electron
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.
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
import electron from 'electron';
|
||||
import { createInstance, listInstances, deleteInstance, getInstanceInfo } from '../core/instance';
|
||||
|
||||
const { ipcMain } = electron;
|
||||
|
||||
export function registerInstanceHandlers() {
|
||||
ipcMain.handle('instance:create', async (_event, payload: {
|
||||
name: string;
|
||||
gamePath: string;
|
||||
mcVersion: string;
|
||||
loaderType?: string;
|
||||
loaderVersion?: string;
|
||||
javaPath?: string;
|
||||
memory?: { min?: string; max?: string };
|
||||
}) => {
|
||||
try {
|
||||
const data = await createInstance(
|
||||
payload.name,
|
||||
payload.gamePath,
|
||||
payload.mcVersion,
|
||||
payload.loaderType,
|
||||
payload.loaderVersion,
|
||||
payload.javaPath,
|
||||
payload.memory
|
||||
);
|
||||
return { success: true, data, error: null };
|
||||
} catch (e: unknown) {
|
||||
return { success: false, data: null, error: String(e) };
|
||||
}
|
||||
});
|
||||
|
||||
ipcMain.handle('instance:list', async (_event, payload: { instancesPath: string }) => {
|
||||
try {
|
||||
const data = await listInstances(payload.instancesPath);
|
||||
return { success: true, data, error: null };
|
||||
} catch (e: unknown) {
|
||||
return { success: false, data: null, error: String(e) };
|
||||
}
|
||||
});
|
||||
|
||||
ipcMain.handle('instance:delete', async (_event, payload: { name: string; instancesPath: string }) => {
|
||||
try {
|
||||
const data = await deleteInstance(payload.name, payload.instancesPath);
|
||||
return { success: true, data, error: null };
|
||||
} catch (e: unknown) {
|
||||
return { success: false, data: null, error: String(e) };
|
||||
}
|
||||
});
|
||||
|
||||
ipcMain.handle('instance:info', async (_event, payload: { name: string; instancesPath: string }) => {
|
||||
try {
|
||||
const data = await getInstanceInfo(payload.name, payload.instancesPath);
|
||||
return { success: true, data, error: null };
|
||||
} catch (e: unknown) {
|
||||
return { success: false, data: null, error: String(e) };
|
||||
}
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user