diff --git a/projects/chrome/src/app/app.component.ts b/projects/chrome/src/app/app.component.ts index 6b16e2e..c94765b 100644 --- a/projects/chrome/src/app/app.component.ts +++ b/projects/chrome/src/app/app.component.ts @@ -1,7 +1,7 @@ import { Component, inject, OnInit } from '@angular/core'; import { RouterOutlet } from '@angular/router'; -import { LoggerService } from '@common'; -import { StartupService } from './services/startup/startup.service'; +import { LoggerService, StartupService } from '@common'; +import { getNewStorageServiceConfig } from './common/data/get-new-storage-service-config'; @Component({ selector: 'app-root', @@ -15,6 +15,7 @@ export class AppComponent implements OnInit { ngOnInit(): void { this.#logger.initialize('Gooti Chrome Extension'); - this.#startup.startOver(); + + this.#startup.startOver(getNewStorageServiceConfig()); } } diff --git a/projects/chrome/src/app/common/data/get-new-storage-service-config.ts b/projects/chrome/src/app/common/data/get-new-storage-service-config.ts new file mode 100644 index 0000000..121091f --- /dev/null +++ b/projects/chrome/src/app/common/data/get-new-storage-service-config.ts @@ -0,0 +1,16 @@ +import { StorageServiceConfig } from '@common'; +import { ChromeSessionHandler } from './chrome-session-handler'; +import { ChromeSyncYesHandler } from './chrome-sync-yes-handler'; +import { ChromeSyncNoHandler } from './chrome-sync-no-handler'; +import { ChromeMetaHandler } from './chrome-meta-handler'; + +export const getNewStorageServiceConfig = () => { + const storageConfig: StorageServiceConfig = { + browserSessionHandler: new ChromeSessionHandler(), + browserSyncYesHandler: new ChromeSyncYesHandler(), + browserSyncNoHandler: new ChromeSyncNoHandler(), + gootiMetaHandler: new ChromeMetaHandler(), + }; + + return storageConfig; +}; diff --git a/projects/chrome/src/app/components/home/settings/settings.component.ts b/projects/chrome/src/app/components/home/settings/settings.component.ts index 3d1e8c7..c492cbe 100644 --- a/projects/chrome/src/app/components/home/settings/settings.component.ts +++ b/projects/chrome/src/app/components/home/settings/settings.component.ts @@ -4,9 +4,10 @@ import { BrowserSyncFlow, ConfirmComponent, DateHelper, + StartupService, StorageService, } from '@common'; -import { StartupService } from '../../../services/startup/startup.service'; +import { getNewStorageServiceConfig } from '../../../common/data/get-new-storage-service-config'; @Component({ selector: 'app-settings', @@ -43,7 +44,7 @@ export class SettingsComponent implements OnInit { async onDeleteVault() { try { await this.#storage.deleteVault(); - this.#startup.startOver(); + this.#startup.startOver(getNewStorageServiceConfig()); } catch (error) { console.log(error); // TODO @@ -68,7 +69,7 @@ export class SettingsComponent implements OnInit { await this.#storage.deleteVault(true); await this.#storage.importVault(vault); this.#storage.isInitialized = false; - this.#startup.startOver(); + this.#startup.startOver(getNewStorageServiceConfig()); } catch (error) { console.log(error); // TODO diff --git a/projects/chrome/src/app/components/vault-create/home/home.component.ts b/projects/chrome/src/app/components/vault-create/home/home.component.ts index d4684b5..1372b30 100644 --- a/projects/chrome/src/app/components/vault-create/home/home.component.ts +++ b/projects/chrome/src/app/components/vault-create/home/home.component.ts @@ -1,7 +1,7 @@ import { Component, inject } from '@angular/core'; import { Router } from '@angular/router'; -import { BrowserSyncData, StorageService } from '@common'; -import { StartupService } from '../../../services/startup/startup.service'; +import { BrowserSyncData, StartupService, StorageService } from '@common'; +import { getNewStorageServiceConfig } from '../../../common/data/get-new-storage-service-config'; @Component({ selector: 'app-home', @@ -27,7 +27,7 @@ export class HomeComponent { console.log(vault); await this.#storage.importVault(vault); - this.#startup.startOver(); + this.#startup.startOver(getNewStorageServiceConfig()); } catch (error) { console.log(error); // TODO diff --git a/projects/chrome/src/app/components/vault-login/vault-login.component.ts b/projects/chrome/src/app/components/vault-login/vault-login.component.ts index 1265794..e93e2aa 100644 --- a/projects/chrome/src/app/components/vault-login/vault-login.component.ts +++ b/projects/chrome/src/app/components/vault-login/vault-login.component.ts @@ -1,8 +1,8 @@ import { Component, inject } from '@angular/core'; import { FormsModule } from '@angular/forms'; import { Router } from '@angular/router'; -import { ConfirmComponent, StorageService } from '@common'; -import { StartupService } from '../../services/startup/startup.service'; +import { ConfirmComponent, StartupService, StorageService } from '@common'; +import { getNewStorageServiceConfig } from '../../common/data/get-new-storage-service-config'; @Component({ selector: 'app-vault-login', @@ -46,7 +46,7 @@ export class VaultLoginComponent { async onClickDeleteVault() { try { await this.#storage.deleteVault(); - this.#startup.startOver(); + this.#startup.startOver(getNewStorageServiceConfig()); } catch (error) { console.log(error); // TODO diff --git a/projects/chrome/src/app/services/startup/startup.service.spec.ts b/projects/common/src/lib/services/startup/startup.service.spec.ts similarity index 100% rename from projects/chrome/src/app/services/startup/startup.service.spec.ts rename to projects/common/src/lib/services/startup/startup.service.spec.ts diff --git a/projects/chrome/src/app/services/startup/startup.service.ts b/projects/common/src/lib/services/startup/startup.service.ts similarity index 77% rename from projects/chrome/src/app/services/startup/startup.service.ts rename to projects/common/src/lib/services/startup/startup.service.ts index 1b23c9e..9b6dec9 100644 --- a/projects/chrome/src/app/services/startup/startup.service.ts +++ b/projects/common/src/lib/services/startup/startup.service.ts @@ -1,10 +1,10 @@ import { inject, Injectable } from '@angular/core'; -import { LoggerService, StorageService, StorageServiceConfig } from '@common'; -import { ChromeSessionHandler } from '../../common/data/chrome-session-handler'; -import { ChromeSyncYesHandler } from '../../common/data/chrome-sync-yes-handler'; -import { ChromeSyncNoHandler } from '../../common/data/chrome-sync-no-handler'; -import { ChromeMetaHandler } from '../../common/data/chrome-meta-handler'; import { Router } from '@angular/router'; +import { LoggerService } from '../logger/logger.service'; +import { + StorageService, + StorageServiceConfig, +} from '../storage/storage.service'; @Injectable({ providedIn: 'root', @@ -14,14 +14,7 @@ export class StartupService { readonly #storage = inject(StorageService); readonly #router = inject(Router); - async startOver() { - const storageConfig: StorageServiceConfig = { - browserSessionHandler: new ChromeSessionHandler(), - browserSyncYesHandler: new ChromeSyncYesHandler(), - browserSyncNoHandler: new ChromeSyncNoHandler(), - gootiMetaHandler: new ChromeMetaHandler(), - }; - + async startOver(storageConfig: StorageServiceConfig) { this.#storage.initialize(storageConfig); // Step 0: diff --git a/projects/common/src/public-api.ts b/projects/common/src/public-api.ts index 422a90b..67eec8a 100644 --- a/projects/common/src/public-api.ts +++ b/projects/common/src/public-api.ts @@ -21,6 +21,7 @@ export * from './lib/services/storage/browser-sync-handler'; export * from './lib/services/storage/browser-session-handler'; export * from './lib/services/storage/gooti-meta-handler'; export * from './lib/services/logger/logger.service'; +export * from './lib/services/startup/startup.service'; // Components export * from './lib/components/icon-button/icon-button.component';