Files
brandly/forge.config.ts
T
kevinguevara 92a8cf78a9 feat: integrate Electron for desktop app
- Add electron-vite + Electron Forge tooling
- Create Electron main process with embedded Express server
- Create preload script with native dialog IPC bridge
- Refactor server.ts to export createExpressApp() (dual web/electron)
- Adapt renderQueue.ts for packaged binaries + pre-built bundle
- Add ensureBrowser() for Chrome Headless Shell pre-download
- Add scripts/bundle-remotion.js for packaging
- Data persists in ~/Library/Application Support/Bradly/
- Web mode preserved via npm run dev:web
2026-06-02 03:57:17 -05:00

47 lines
1.2 KiB
TypeScript

/**
* Electron Forge Configuration — Bradly Desktop App
*
* Handles packaging and creating distributable installers.
* Currently targets macOS (.dmg) only.
*/
import type { ForgeConfig } from '@electron-forge/shared-types';
import { MakerDMG } from '@electron-forge/maker-dmg';
const config: ForgeConfig = {
packagerConfig: {
name: 'Bradly',
executableName: 'bradly',
asar: {
// Remotion compositor binaries MUST be outside app.asar
// because they are native executables that need direct filesystem access
unpack: '{**/node_modules/@remotion/compositor-*/**,**/node_modules/@remotion/renderer/**}',
},
// Ignore development files during packaging
ignore: [
/^\/src$/,
/^\/scripts$/,
/^\/uploads$/,
/^\/renders$/,
/^\/\.vscode$/,
/^\/\.git$/,
/^\/\.env/,
/^\/\.antigravity$/,
/^\/vite\.config\.ts$/,
/^\/electron\.vite\.config\.ts$/,
/^\/tsconfig\.json$/,
/^\/ABOUT\.md$/,
/^\/AGENTS\.md$/,
/^\/README\.md$/,
/^\/schema\.sql$/,
/^\/backend_endpoint\.py$/,
],
},
makers: [
new MakerDMG({
format: 'ULFO',
}),
],
};
export default config;