Files
crowd-funder-for-time-pwa/vite.config.mobile.ts
Matthew Raymer 42d706b1fb WIP: Platform-specific service architecture and configuration refactor
This commit introduces a platform-specific service architecture and configuration
system, with the following changes:

- Created platform-specific service implementations for database backup:
  - Web: Uses URL.createObjectURL and download link
  - Mobile: Uses Capacitor Filesystem and Share APIs
  - Base: Abstract DatabaseBackupService class

- Implemented PlatformServiceFactory for dynamic service loading:
  - Singleton pattern for factory management
  - Dynamic imports based on platform environment
  - Error handling for service loading failures

- Refactored Vite configuration:
  - Split into base and platform-specific configs
  - Added environment-based platform detection
  - Improved build optimization settings

- Enhanced error handling:
  - Added type-safe error interfaces
  - Improved error message formatting
  - Better error logging with context

- Updated AccountViewView:
  - Moved profile management to ProfileSection component
  - Improved type safety in error handling
  - Enhanced database backup functionality

Note: This is a work in progress. Some features may need additional testing
and refinement before being production-ready.
2025-04-02 10:48:29 +00:00

28 lines
767 B
TypeScript

import { defineConfig, loadEnv } from "vite";
import baseConfig from "./vite.config.base";
export default defineConfig(({ mode }) => {
const env = loadEnv(mode, process.cwd(), '');
return {
...baseConfig,
define: {
'import.meta.env.VITE_PLATFORM': JSON.stringify('mobile'),
},
build: {
...baseConfig.build,
outDir: 'dist/mobile',
rollupOptions: {
...baseConfig.build.rollupOptions,
output: {
...baseConfig.build.rollupOptions.output,
manualChunks: {
// Mobile-specific chunk splitting
vendor: ['vue', 'vue-router', 'pinia'],
capacitor: ['@capacitor/core', '@capacitor/filesystem', '@capacitor/share'],
}
}
}
}
};
});