P0: Electrobun + Angular 22 + Tailwind skeleton boots under Bun
- Electrobun 1.18 shell with branding in src/shared/branding.ts - Angular 22 zoneless UI in ui/ (workspace), Tailwind v4 shadcn-style tokens - ng-icons/mynaui icon registry - Node-version shim so Angular CLI runs under Bun without Node installed - ssh2 SFTP verified working under Bun against test box Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
import { BrowserWindow, Updater } from "electrobun/bun";
|
||||
import { BRANDING } from "../shared/branding";
|
||||
|
||||
const PROD_URL = "views://app/index.html";
|
||||
|
||||
// In dev, scripts/dev.ts sets DEV_SERVER_URL to the running ng serve instance
|
||||
// so the UI gets HMR. Packaged builds always load the bundled Angular app.
|
||||
async function getMainViewUrl(): Promise<string> {
|
||||
const devServerUrl = process.env.DEV_SERVER_URL;
|
||||
if (!devServerUrl) return PROD_URL;
|
||||
|
||||
const channel = await Updater.localInfo.channel();
|
||||
if (channel !== "dev") return PROD_URL;
|
||||
|
||||
try {
|
||||
await fetch(devServerUrl, { method: "HEAD" });
|
||||
return devServerUrl;
|
||||
} catch {
|
||||
console.log(`Dev server ${devServerUrl} not reachable, using ${PROD_URL}`);
|
||||
return PROD_URL;
|
||||
}
|
||||
}
|
||||
|
||||
const url = await getMainViewUrl();
|
||||
|
||||
const mainWindow = new BrowserWindow({
|
||||
title: BRANDING.appName,
|
||||
url,
|
||||
frame: {
|
||||
width: 1200,
|
||||
height: 760,
|
||||
x: 120,
|
||||
y: 120,
|
||||
},
|
||||
});
|
||||
|
||||
console.log(`${BRANDING.appName} started (${url})`);
|
||||
Reference in New Issue
Block a user