33 lines
780 B
TypeScript
33 lines
780 B
TypeScript
|
import {Inject, Injectable} from '@angular/core';
|
||
|
import {HttpClient, HttpXhrBackend} from '@angular/common/http';
|
||
|
import {Observable} from 'rxjs';
|
||
|
|
||
|
@Injectable()
|
||
|
export class AppConfig {
|
||
|
|
||
|
private config: Object = null;
|
||
|
private httpClient: HttpClient;
|
||
|
|
||
|
constructor(xhrBackend: HttpXhrBackend) {
|
||
|
this.httpClient = new HttpClient(xhrBackend);
|
||
|
this.config = null;
|
||
|
}
|
||
|
|
||
|
public getConfig(key: any) {
|
||
|
if (!this.config.hasOwnProperty(key)) {
|
||
|
console.log(`Config key ${key} not set`);
|
||
|
}
|
||
|
return this.config[key];
|
||
|
}
|
||
|
|
||
|
public load(): Promise<any> {
|
||
|
return this.httpClient.get('/configuration.json')
|
||
|
.toPromise()
|
||
|
.then(data => {
|
||
|
this.config = data;
|
||
|
//return data;
|
||
|
})
|
||
|
.catch(error => this.config = null);
|
||
|
};
|
||
|
}
|