chore: update configuration and improve backup service handling

- Added root path configuration for turbopack in next.config.ts.
- Updated build script in package.json to include Prisma generation.
- Changed backup service methods to use synchronous config retrieval where appropriate, improving performance and avoiding async issues.
- Ensured dynamic rendering in layout.tsx for better page performance.
This commit is contained in:
Julien Froidefond
2025-10-31 12:11:19 +01:00
parent 5d1239c4de
commit e4e49df60b
9 changed files with 41 additions and 16 deletions

View File

@@ -41,19 +41,22 @@ export class BackupService {
}
private config: BackupConfig;
private configLoaded: boolean = false;
constructor(config?: Partial<BackupConfig>) {
this.config = { ...this.defaultConfig, ...config };
// Charger la config depuis la DB de manière asynchrone
this.loadConfigFromDB().catch(() => {
// Ignorer les erreurs de chargement initial
});
// Ne pas charger la config depuis la DB dans le constructeur
// pour éviter les erreurs pendant le build
// La config sera chargée de manière lazy quand nécessaire
}
/**
* Charge la configuration depuis la base de données
* Charge la configuration depuis la base de données (lazy loading)
*/
private async loadConfigFromDB(): Promise<void> {
if (this.configLoaded) {
return; // Déjà chargé
}
try {
// Pour le service de backup, on utilise un userId par défaut
// car il n'a pas accès à la session
@@ -70,11 +73,14 @@ export class BackupService {
this.config = { ...this.defaultConfig, ...backupConfig };
}
}
this.configLoaded = true;
} catch (error) {
console.warn(
'Could not load backup config from DB, using defaults:',
error
);
// Marquer comme chargé même en cas d'erreur pour éviter de réessayer
this.configLoaded = true;
}
}
@@ -593,9 +599,23 @@ export class BackupService {
}
/**
* Obtient la configuration actuelle
* Obtient la configuration actuelle (synchrone)
* Retourne la config par défaut si elle n'a pas encore été chargée depuis la DB
*/
getConfig(): BackupConfig {
getConfigSync(): BackupConfig {
return {
...this.config,
backupPath: this.getCurrentBackupPath(),
};
}
/**
* Obtient la configuration actuelle
* Charge la config depuis la DB si ce n'est pas déjà fait
*/
async getConfig(): Promise<BackupConfig> {
// Charger la config depuis la DB si ce n'est pas déjà fait
await this.loadConfigFromDB();
// Retourner une config avec le chemin à jour
return {
...this.config,