import { IFASAdminConfigInitializer } from '../models/fas-admin-models'; import { FAS_DEFAULT_CONFIG_VALUE } from '../const/fas-default-config'; import { API_URL } from '../../../api/models/api-url.token'; import { InjectionToken } from '@angular/core'; export const FAS_LIB_CONFIG = new InjectionToken( 'FAS_LIB_CONFIG', { providedIn: 'root', factory: () => { console.warn( `FAS_LIB_CONFIG: Using default configuration. If you want to customize it, provide a configuration object using the provideFASLibConfig method in the providers array of your AppModule.` ); return FAS_DEFAULT_CONFIG_VALUE; }, } ); /** * Factory function to provide a custom configuration for FAS_LIB_CONFIG. * Ensures that the configuration object conforms to IFASAdminConfigInitializer. */ export function provideFASAdminLibConfig(config: IFASAdminConfigInitializer): { provide: typeof FAS_LIB_CONFIG; useValue: IFASAdminConfigInitializer; } { return { provide: FAS_LIB_CONFIG, useValue: config, }; } /** * Factory function to provide a api configuration for FAS API_URL. */ export function provideFASAdminLibApiConfig(apiUrl: string): { provide: typeof API_URL; useValue: string; } { return { provide: API_URL, useValue: apiUrl, }; }