@kephas/angular
Version:
Provides integration capabilities with Angular.
57 lines • 7.44 kB
JavaScript
var Configuration_1;
import { __awaiter, __decorate } from "tslib";
import { SingletonAppServiceContract, AppService, Priority } from '@kephas/core';
// https://stackoverflow.com/questions/50222998/error-encountered-in-metadata-generated-for-exported-symbol-when-constructing-an
// @dynamic
/**
* The configuration service.
*
* @export
* @class Configuration
* @implements {AsyncInitializable}
*/
let Configuration = Configuration_1 = class Configuration {
/**
* Ensures that the configuration file is initialized.
*
* @param {{ http: HttpClient, configurationFileUrl?: string }} context The context containing initialization data.
* @returns {Promise<void>}
* @memberof Configuration
*/
initializeAsync(context) {
return __awaiter(this, void 0, void 0, function* () {
if (Configuration_1.configurationFile) {
return;
}
const response = yield context.http.get(context.configurationFileUrl ? context.configurationFileUrl : Configuration_1.configurationFileUrl).toPromise();
Configuration_1.configurationFile = response || {};
});
}
/**
* Gets the configuration settings for the indicated section name.
*
* @template T The settings type.
* @param {string} sectionName The section name.
* @returns {T} The settings.
* @memberof Configuration
*/
getSettings(settingsType) {
if (!Configuration_1.configurationFile) {
throw new Error('The configuration manager must be initialized prior to requesting settings from it.');
}
let sectionName = settingsType.name;
const ending = 'Settings';
if (sectionName.endsWith(ending)) {
sectionName = sectionName.substr(0, sectionName.length - ending.length);
}
sectionName = sectionName[0].toLowerCase() + sectionName.substr(1, sectionName.length - 1);
return Configuration_1.configurationFile[sectionName];
}
};
Configuration.configurationFileUrl = '/app/configuration.json';
Configuration = Configuration_1 = __decorate([
AppService({ overridePriority: Priority.Low }),
SingletonAppServiceContract()
], Configuration);
export { Configuration };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9jb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsT0FBTyxFQUNILDJCQUEyQixFQUFFLFVBQVUsRUFBRSxRQUFRLEVBR3BELE1BQU0sY0FBYyxDQUFDO0FBRXRCLGdJQUFnSTtBQUVoSSxXQUFXO0FBQ1g7Ozs7OztHQU1HO0lBR1UsYUFBYSwyQkFBYixhQUFhO0lBTXRCOzs7Ozs7T0FNRztJQUNVLGVBQWUsQ0FBQyxPQUE0RDs7WUFDckYsSUFBSSxlQUFhLENBQUMsaUJBQWlCLEVBQUU7Z0JBQ2pDLE9BQU87YUFDVjtZQUVELE1BQU0sUUFBUSxHQUFHLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLGVBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3RKLGVBQWEsQ0FBQyxpQkFBaUIsR0FBRyxRQUFRLElBQUksRUFBRSxDQUFDO1FBQ3JELENBQUM7S0FBQTtJQUVEOzs7Ozs7O09BT0c7SUFDSSxXQUFXLENBQUksWUFBcUI7UUFFdkMsSUFBSSxDQUFDLGVBQWEsQ0FBQyxpQkFBaUIsRUFBRTtZQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLHFGQUFxRixDQUFDLENBQUM7U0FDMUc7UUFFRCxJQUFJLFdBQVcsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDO1FBQ3BDLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQztRQUMxQixJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDOUIsV0FBVyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzNFO1FBRUQsV0FBVyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRTNGLE9BQVEsZUFBYSxDQUFDLGlCQUE2QixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7Q0FDSixDQUFBO0FBNUMyQixrQ0FBb0IsR0FBRyx5QkFBeUIsQ0FBQztBQUZoRSxhQUFhO0lBRnpCLFVBQVUsQ0FBQyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUM5QywyQkFBMkIsRUFBRTtHQUNqQixhQUFhLENBOEN6QjtTQTlDWSxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUmVzcG9uc2UgYXMgSHR0cFJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQge1xyXG4gICAgU2luZ2xldG9uQXBwU2VydmljZUNvbnRyYWN0LCBBcHBTZXJ2aWNlLCBQcmlvcml0eSxcclxuICAgIEFzeW5jSW5pdGlhbGl6YWJsZSxcclxuICAgIEV4cGFuZG9cclxufSBmcm9tICdAa2VwaGFzL2NvcmUnO1xyXG5cclxuLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNTAyMjI5OTgvZXJyb3ItZW5jb3VudGVyZWQtaW4tbWV0YWRhdGEtZ2VuZXJhdGVkLWZvci1leHBvcnRlZC1zeW1ib2wtd2hlbi1jb25zdHJ1Y3RpbmctYW5cclxuXHJcbi8vIEBkeW5hbWljXHJcbi8qKlxyXG4gKiBUaGUgY29uZmlndXJhdGlvbiBzZXJ2aWNlLlxyXG4gKlxyXG4gKiBAZXhwb3J0XHJcbiAqIEBjbGFzcyBDb25maWd1cmF0aW9uXHJcbiAqIEBpbXBsZW1lbnRzIHtBc3luY0luaXRpYWxpemFibGV9XHJcbiAqL1xyXG5AQXBwU2VydmljZSh7IG92ZXJyaWRlUHJpb3JpdHk6IFByaW9yaXR5LkxvdyB9KVxyXG5AU2luZ2xldG9uQXBwU2VydmljZUNvbnRyYWN0KClcclxuZXhwb3J0IGNsYXNzIENvbmZpZ3VyYXRpb24gaW1wbGVtZW50cyBBc3luY0luaXRpYWxpemFibGUge1xyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGNvbmZpZ3VyYXRpb25GaWxlVXJsID0gJy9hcHAvY29uZmlndXJhdGlvbi5qc29uJztcclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBjb25maWd1cmF0aW9uRmlsZToge307XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFbnN1cmVzIHRoYXQgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBpcyBpbml0aWFsaXplZC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge3sgaHR0cDogSHR0cENsaWVudCwgY29uZmlndXJhdGlvbkZpbGVVcmw/OiBzdHJpbmcgfX0gY29udGV4dCBUaGUgY29udGV4dCBjb250YWluaW5nIGluaXRpYWxpemF0aW9uIGRhdGEuXHJcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cclxuICAgICAqIEBtZW1iZXJvZiBDb25maWd1cmF0aW9uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhc3luYyBpbml0aWFsaXplQXN5bmMoY29udGV4dDogeyBodHRwOiBIdHRwQ2xpZW50LCBjb25maWd1cmF0aW9uRmlsZVVybD86IHN0cmluZyB9KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgaWYgKENvbmZpZ3VyYXRpb24uY29uZmlndXJhdGlvbkZpbGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjb250ZXh0Lmh0dHAuZ2V0KGNvbnRleHQuY29uZmlndXJhdGlvbkZpbGVVcmwgPyBjb250ZXh0LmNvbmZpZ3VyYXRpb25GaWxlVXJsIDogQ29uZmlndXJhdGlvbi5jb25maWd1cmF0aW9uRmlsZVVybCkudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgQ29uZmlndXJhdGlvbi5jb25maWd1cmF0aW9uRmlsZSA9IHJlc3BvbnNlIHx8IHt9O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBmb3IgdGhlIGluZGljYXRlZCBzZWN0aW9uIG5hbWUuXHJcbiAgICAgKlxyXG4gICAgICogQHRlbXBsYXRlIFQgVGhlIHNldHRpbmdzIHR5cGUuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc2VjdGlvbk5hbWUgVGhlIHNlY3Rpb24gbmFtZS5cclxuICAgICAqIEByZXR1cm5zIHtUfSBUaGUgc2V0dGluZ3MuXHJcbiAgICAgKiBAbWVtYmVyb2YgQ29uZmlndXJhdGlvblxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0U2V0dGluZ3M8VD4oc2V0dGluZ3NUeXBlOiBUeXBlPFQ+KTogVCB7XHJcblxyXG4gICAgICAgIGlmICghQ29uZmlndXJhdGlvbi5jb25maWd1cmF0aW9uRmlsZSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBjb25maWd1cmF0aW9uIG1hbmFnZXIgbXVzdCBiZSBpbml0aWFsaXplZCBwcmlvciB0byByZXF1ZXN0aW5nIHNldHRpbmdzIGZyb20gaXQuJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgc2VjdGlvbk5hbWUgPSBzZXR0aW5nc1R5cGUubmFtZTtcclxuICAgICAgICBjb25zdCBlbmRpbmcgPSAnU2V0dGluZ3MnO1xyXG4gICAgICAgIGlmIChzZWN0aW9uTmFtZS5lbmRzV2l0aChlbmRpbmcpKSB7XHJcbiAgICAgICAgICAgIHNlY3Rpb25OYW1lID0gc2VjdGlvbk5hbWUuc3Vic3RyKDAsIHNlY3Rpb25OYW1lLmxlbmd0aCAtIGVuZGluZy5sZW5ndGgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc2VjdGlvbk5hbWUgPSBzZWN0aW9uTmFtZVswXS50b0xvd2VyQ2FzZSgpICsgc2VjdGlvbk5hbWUuc3Vic3RyKDEsIHNlY3Rpb25OYW1lLmxlbmd0aCAtIDEpO1xyXG5cclxuICAgICAgICByZXR1cm4gKENvbmZpZ3VyYXRpb24uY29uZmlndXJhdGlvbkZpbGUgYXMgRXhwYW5kbylbc2VjdGlvbk5hbWVdO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==