import { app } from 'electron'; import { join } from 'node:path'; // Résolution des chemins runtime : dev (depuis le repo) vs packagé (extraResources). // __dirname pointe sur dist/ (bundle esbuild) une fois construit. /** Entrée du serveur daemon (son dist/index.js). */ export function resolveServerEntry(): string { if (app.isPackaged) { // packagé : le tarball du daemon est extrait sous resources/server/package/ return join(process.resourcesPath, 'server', 'package', 'dist', 'index.js'); } // dev : packages/desktop/dist/main.js -> packages/server/dist/index.js return join(__dirname, '..', '..', 'server', 'dist', 'index.js'); } /** Logo de l'app (fenêtre, tray, barre des tâches) : le mark Arboretum embarqué. */ export function resolveIconPath(): string { // packagé : extraResources copie resources/icon.png à la racine de resources/. // dev : depuis dist/main.js -> ../resources/icon.png. return app.isPackaged ? join(process.resourcesPath, 'icon.png') : join(__dirname, '..', 'resources', 'icon.png'); } /** Binaire Node qui exécute le daemon (>= 22.16 : node:sqlite + ABI node-pty maîtrisé). */ export function resolveNodeBin(): string { if (app.isPackaged) { return process.platform === 'win32' ? join(process.resourcesPath, 'node', 'node.exe') : join(process.resourcesPath, 'node', 'bin', 'node'); } // dev : node du PATH (mêmes prebuilds node-pty que le repo). return process.platform === 'win32' ? 'node.exe' : 'node'; }