Angular APP_INITIALIZER & Environment Variables Configurations

Khayal Salimov
1 min readApr 8, 2024

--

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)
}

--

--