41 lines
927 B
TypeScript
41 lines
927 B
TypeScript
import { app, BrowserWindow } from 'electron';
|
|
import {
|
|
initializeDatabase,
|
|
destroyDatabase,
|
|
getDataSource
|
|
} from '../db/database';
|
|
import { createWindow } from '../window/create-window';
|
|
import {
|
|
setupCqrsHandlers,
|
|
setupSystemHandlers,
|
|
setupWindowControlHandlers
|
|
} from '../ipc';
|
|
|
|
export function registerAppLifecycle(): void {
|
|
app.whenReady().then(async () => {
|
|
await initializeDatabase();
|
|
setupCqrsHandlers();
|
|
setupWindowControlHandlers();
|
|
setupSystemHandlers();
|
|
await createWindow();
|
|
|
|
app.on('activate', () => {
|
|
if (BrowserWindow.getAllWindows().length === 0)
|
|
createWindow();
|
|
});
|
|
});
|
|
|
|
app.on('window-all-closed', () => {
|
|
if (process.platform !== 'darwin')
|
|
app.quit();
|
|
});
|
|
|
|
app.on('before-quit', async (event) => {
|
|
if (getDataSource()?.isInitialized) {
|
|
event.preventDefault();
|
|
await destroyDatabase();
|
|
app.quit();
|
|
}
|
|
});
|
|
}
|