42 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { ApplicationConfig, provideExperimentalZonelessChangeDetection } from '@angular/core';
 | |
| import { provideRouter } from '@angular/router';
 | |
| import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
 | |
| 
 | |
| import { routes } from './app.routes';
 | |
| import { provideHttpClient, withInterceptors } from '@angular/common/http';
 | |
| import { provideAnimationsAsync } from '@angular/platform-browser/animations/async';
 | |
| import { OAuthStorage, provideOAuthClient } from 'angular-oauth2-oidc';
 | |
| import { httpInterceptor } from './shared/interceptor/http.interceptor';
 | |
| 
 | |
| function storageFactory() {
 | |
|   return new class implements OAuthStorage {
 | |
|     private data: { [key: string]: string } = {};
 | |
| 
 | |
|     getItem(key: string): string | null {
 | |
|       return this.data[key];
 | |
|     }
 | |
| 
 | |
|     removeItem(key: string): void {
 | |
|       delete this.data[key]
 | |
|     }
 | |
| 
 | |
|     setItem(key: string, data: string): void {
 | |
|       this.data[key] = data;
 | |
|     }
 | |
|   }
 | |
| }
 | |
| 
 | |
| export const appConfig: ApplicationConfig = {
 | |
|   providers: [
 | |
|     provideRouter(routes),
 | |
|     FontAwesomeModule,
 | |
|     provideHttpClient(withInterceptors([httpInterceptor])),
 | |
|     provideExperimentalZonelessChangeDetection(),
 | |
|     provideAnimationsAsync(),
 | |
|     provideOAuthClient(),
 | |
|     {
 | |
|       provide: OAuthStorage,
 | |
|       useFactory: () => storageFactory(),
 | |
|     }
 | |
|   ],
 | |
| };
 |