Files
miniSCP/electrobun.config.ts
T
JokinandClaude Fable 5 0d0e4cfde4 P4: SFTP provider, connection store, connection manager UI
- SftpProvider (ssh2): password + key auth, keepalive, clean-dispose vs
  unexpected-close distinction, POSIX path helpers, s->ms attr normalization
- ConnectionStore: plain JSON at appDataDir, 0600, atomic writes, folders
- connect/disconnect + store CRUD handlers; sessionClosed push -> panels fall
  back to local and in-flight jobs fail
- UI: session dropdown per panel (local/saved connections/manage), disconnect
  button, connection manager modal (folders, edit form, save/connect)
- electrobun bundler: external cpu-features/*.node (ssh2 optional natives)
- RpcService: gate requests on RPC socket open; defer initial panel loads past
  first render
- verified against 192.168.10.122: full op matrix, upload/download/remote-remote
  recursive transfers, roundtrip integrity, recursive remote delete, store CRUD

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-11 14:12:00 +02:00

33 lines
717 B
TypeScript

import type { ElectrobunConfig } from "electrobun";
import { BRANDING } from "./src/shared/branding";
export default {
app: {
name: BRANDING.appName,
identifier: BRANDING.identifier,
version: BRANDING.version,
},
build: {
bun: {
entrypoint: "src/bun/index.ts",
// ssh2's optional native accelerators must never be bundled; its
// runtime try/catch falls back to pure JS when the require fails.
external: ["cpu-features", "*.node"],
},
copy: {
"ui/dist/ui/browser": "views/app",
},
watchIgnore: ["ui/**", "dist/**"],
mac: {
bundleCEF: false,
icons: BRANDING.icon,
},
linux: {
bundleCEF: false,
},
win: {
bundleCEF: false,
},
},
} satisfies ElectrobunConfig;