Angular APP_INITIALIZER & Environment Variables Configurations
APP_INITIALIZER proqram başlamazdan əvvəl konfiqurasya məlumatını yükləmək üçün istifadə edə bilən Dependency Injection tokenidir.
Bu token nəticəsində, proqram başlamadan əvvəl bəzi kodlar istifadə olunur.Buna misal olaraq: authorize, environment və ya bəzi birinci dataların yüklənməsi kimi prosesler.
APP_INITIALIZER tərəfində işlədilən bütün proseslər çalışıb, nəticələnənə qədər proqram gozleyecek. proseler app.config.ts de yazılır.
export const appConfig: ApplicationConfig = {
providers: [
{
provide: APP_INITIALIZER,
useFactory: () => {
console.log("Qabaqcıl prosesler həyata keçirildi");
return null
},
},]
};
Angularda konfiqurasya datalarını saxlamaq üçün environment variable-lar movcuddur. Lakin bu variable-ları runtime vaxtında dəyişdirmək mümkün deyildir. Bunun üçün lazım olan endpoint-ləri depolamaq lazımdır.
Nümünə üçün src/app/assest/config faylında JSON və ya XML formatında fayl yaradıb saxlamaq olar və proyekt açılmadan qabaq APP_INITIALIZER tokenindən faydalanmaq lazımdır.
{
"a": "b",
"x": "y"
}
export const environment = {
production: true,
apiEndPoint: 'https://filan.com'
};
Hər bir proyekt production-a keçmədən əvvəl developer, test, pre-prod və production ortamlarindan keçir.
Environment variables web proqramlarında olduğu ortama görə dəyəri dəyişə bilən variables-dir. Hər bir ortamın özünə görə endPoint-ləri olacaqdır.
ng g environments
Environment variabler-ların oxunması üçün sadəcə environment.ts faylı import edilməlidir. ng serve proqramı default olaraq production ortamına görə ayağa qaldıracaq.
Proqramı başqa ortamda ayağa qaldırmaq üçün
ng serve --configuration=’development’
export const environment = {
production: true,
apiEndPoint: 'https://filan.com'
};
export const environment = {
production: false,
apiEndPoint: 'https://dev.filan.com'
};
constructor(private httpClient: HttpClient) {
console.log(environment.production)
console.log(environment.apiEndPoint)
}