mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-04-04 22:39:46 +00:00
refactor(patch-db): use PatchDB class declaratively (#1562)
* refactor(patch-db): use PatchDB class declaratively * chore: remove initial source before init * chore: show spinner * fix: show Connecting to Embassy spinner until first connection * fix: switching marketplaces * allow for subscription to end with take when installing a package * update patchdb Co-authored-by: Lucy Cifferello <12953208+elvece@users.noreply.github.com>
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { DOCUMENT } from '@angular/common'
|
||||
import { Bootstrapper, DBCache } from 'patch-db-client'
|
||||
import { APP_INITIALIZER, ErrorHandler, Provider } from '@angular/core'
|
||||
import { FormBuilder } from '@angular/forms'
|
||||
import { Router, RouteReuseStrategy } from '@angular/router'
|
||||
@@ -9,15 +9,11 @@ import { WorkspaceConfig } from '@start9labs/shared'
|
||||
import { ApiService } from './services/api/embassy-api.service'
|
||||
import { MockApiService } from './services/api/embassy-mock-api.service'
|
||||
import { LiveApiService } from './services/api/embassy-live-api.service'
|
||||
import {
|
||||
PATCH_SOURCE,
|
||||
mockSourceFactory,
|
||||
realSourceFactory,
|
||||
} from './services/patch-db/patch-db.factory'
|
||||
import { ConfigService } from './services/config.service'
|
||||
import { BOOTSTRAPPER, PATCH_CACHE } from './services/patch-db/patch-db.factory'
|
||||
import { GlobalErrorHandler } from './services/global-error-handler.service'
|
||||
import { AuthService } from './services/auth.service'
|
||||
import { LocalStorageService } from './services/local-storage.service'
|
||||
import { DataModel } from './services/patch-db/data-model'
|
||||
|
||||
const { useMocks } = require('../../../../config.json') as WorkspaceConfig
|
||||
|
||||
@@ -32,18 +28,20 @@ export const APP_PROVIDERS: Provider[] = [
|
||||
provide: ApiService,
|
||||
useClass: useMocks ? MockApiService : LiveApiService,
|
||||
},
|
||||
{
|
||||
provide: PATCH_SOURCE,
|
||||
deps: [ApiService, ConfigService, DOCUMENT],
|
||||
useFactory: useMocks ? mockSourceFactory : realSourceFactory,
|
||||
},
|
||||
{
|
||||
provide: ErrorHandler,
|
||||
useClass: GlobalErrorHandler,
|
||||
},
|
||||
{
|
||||
provide: APP_INITIALIZER,
|
||||
deps: [Storage, AuthService, LocalStorageService, Router],
|
||||
deps: [
|
||||
Storage,
|
||||
AuthService,
|
||||
LocalStorageService,
|
||||
Router,
|
||||
BOOTSTRAPPER,
|
||||
PATCH_CACHE,
|
||||
],
|
||||
useFactory: appInitializer,
|
||||
multi: true,
|
||||
},
|
||||
@@ -54,12 +52,19 @@ export function appInitializer(
|
||||
auth: AuthService,
|
||||
localStorage: LocalStorageService,
|
||||
router: Router,
|
||||
bootstrapper: Bootstrapper<DataModel>,
|
||||
cache: DBCache<DataModel>,
|
||||
): () => Promise<void> {
|
||||
return async () => {
|
||||
await storage.create()
|
||||
await auth.init()
|
||||
await localStorage.init()
|
||||
|
||||
const localCache = await bootstrapper.init()
|
||||
|
||||
cache.sequence = localCache.sequence
|
||||
cache.data = localCache.data
|
||||
|
||||
router.initialNavigation()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user