WIP: add Electron platform configuration to Capacitor

- Add electron platform section to capacitor.config.json
- Configure deep linking with timesafari:// scheme
- Set up build options for macOS, Windows, and Linux
- Configure output directory and file inclusion
- Add platform-specific build targets (DMG, NSIS, AppImage)
- Support both x64 and arm64 architectures for macOS
- Set appropriate app categories for each platform

This enables building TimeSafari as a native desktop application
using Capacitor's Electron platform while maintaining existing
mobile and web functionality.
This commit is contained in:
Matthew Raymer
2025-06-25 12:50:46 +00:00
parent ca014a52de
commit ea0f49d5c3
29 changed files with 420 additions and 1987 deletions

View File

@@ -1,53 +0,0 @@
#!/bin/bash
# build-electron.sh
# Author: Matthew Raymer
# Description: Electron build script for TimeSafari application
# This script handles the complete Electron build process including cleanup,
# TypeScript compilation, Vite build, and Electron-specific setup.
#
# Exit Codes:
# 1 - Cleanup failed
# 2 - TypeScript compilation failed
# 3 - Vite build failed
# 4 - Electron build script failed
# Exit on any error
set -e
# Source common utilities
source "$(dirname "$0")/common.sh"
# Parse command line arguments
parse_args "$@"
# Print build header
print_header "TimeSafari Electron Build Process"
log_info "Starting Electron build process at $(date)"
# Setup environment for Electron build
setup_build_env "electron"
# Setup application directories
setup_app_directories
# Load environment from .env file if it exists
load_env_file ".env"
# Step 1: Clean previous builds
safe_execute "Cleaning previous builds" "npm run clean:electron" || exit 1
# Step 2: Compile TypeScript for Electron
safe_execute "Compiling TypeScript for Electron" "npx tsc -p tsconfig.electron.json" || exit 2
# Step 3: Build with Vite
safe_execute "Building with Vite" "npx vite build --config vite.config.electron.mts" || exit 3
# Step 4: Run Electron build script
safe_execute "Running Electron build script" "node scripts/build-electron.js" || exit 4
# Print build summary
log_success "Electron build completed successfully!"
print_footer "Electron Build"
# Exit with success
exit 0