Some checks failed
Architecture Governance / architecture (push) Has been cancelled
Implements ADR-0002. MediaRepository is an abstract-class DI token (matching the Ed25519VerificationService pattern in app.config.ts) bound to MockMediaRepository, an IndexedDB-backed implementation storing blobs directly with lazily-created/revoked object URLs. Swapping to a real HttpMediaRepository later is a one-line provider change. No UI yet (Sprint 4 Task 3).
36 lines
1.8 KiB
TypeScript
36 lines
1.8 KiB
TypeScript
import { ApplicationConfig, provideBrowserGlobalErrorListeners, provideZoneChangeDetection, isDevMode } from '@angular/core';
|
|
import { provideRouter, withInMemoryScrolling } from '@angular/router';
|
|
import { provideHttpClient, withInterceptors } from '@angular/common/http';
|
|
|
|
import { routes } from './app.routes';
|
|
import { cacheInterceptor } from './interceptors/cache.interceptor';
|
|
import { apiBaseUrlInterceptor } from './interceptors/api-base-url.interceptor';
|
|
import { apiHeadersInterceptor } from './interceptors/api-headers.interceptor';
|
|
import { mockDataInterceptor } from './interceptors/mock-data.interceptor';
|
|
import { adminAuthHeadersInterceptor } from './core/admin-auth/admin-auth-headers.interceptor';
|
|
import { Ed25519VerificationService } from './core/admin-auth/ed25519-verification.model';
|
|
import { NoopEd25519VerificationService } from './core/admin-auth/noop-ed25519-verification.service';
|
|
import { provideServiceWorker } from '@angular/service-worker';
|
|
import { MediaRepository } from './core/media/media-repository';
|
|
import { MockMediaRepository } from './core/media/mock-media-repository.service';
|
|
|
|
export const appConfig: ApplicationConfig = {
|
|
providers: [
|
|
provideBrowserGlobalErrorListeners(),
|
|
provideZoneChangeDetection({ eventCoalescing: true }),
|
|
provideRouter(
|
|
routes,
|
|
withInMemoryScrolling({ scrollPositionRestoration: 'top' })
|
|
),
|
|
provideHttpClient(
|
|
withInterceptors([mockDataInterceptor, apiBaseUrlInterceptor, apiHeadersInterceptor, adminAuthHeadersInterceptor, cacheInterceptor])
|
|
),
|
|
{ provide: Ed25519VerificationService, useClass: NoopEd25519VerificationService },
|
|
{ provide: MediaRepository, useClass: MockMediaRepository },
|
|
provideServiceWorker('ngsw-worker.js', {
|
|
enabled: !isDevMode(),
|
|
registrationStrategy: 'registerWhenStable:30000'
|
|
})
|
|
]
|
|
};
|