@kephas/ngx-core
Version:
Provides integration capabilities with Angular 13+.
55 lines • 7.25 kB
JavaScript
var Configuration_1;
import { __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
*/
async initializeAsync(context) {
if (Configuration_1.configurationFile) {
return;
}
const response = await 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.substring(0, sectionName.length - ending.length);
}
sectionName = sectionName[0].toLowerCase() + sectionName.substring(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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlcGhhcy9uZ3gtY29yZS9zcmMvbGliL3NlcnZpY2VzL2NvbmZpZ3VyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQSxPQUFPLEVBQ0gsMkJBQTJCLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFHcEQsTUFBTSxjQUFjLENBQUM7QUFFdEIsZ0lBQWdJO0FBRWhJLFdBQVc7QUFDWDs7Ozs7O0dBTUc7QUFHSCxJQUFhLGFBQWEscUJBQTFCLE1BQWEsYUFBYTtJQU10Qjs7Ozs7O09BTUc7SUFDSSxLQUFLLENBQUMsZUFBZSxDQUFDLE9BQTREO1FBQ3JGLElBQUksZUFBYSxDQUFDLGlCQUFpQixFQUFFO1lBQ2pDLE9BQU87U0FDVjtRQUVELE1BQU0sUUFBUSxHQUFHLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLGVBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3RKLGVBQWEsQ0FBQyxpQkFBaUIsR0FBRyxRQUFRLElBQUksRUFBRSxDQUFDO0lBQ3JELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksV0FBVyxDQUFJLFlBQXFCO1FBRXZDLElBQUksQ0FBQyxlQUFhLENBQUMsaUJBQWlCLEVBQUU7WUFDbEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxxRkFBcUYsQ0FBQyxDQUFDO1NBQzFHO1FBRUQsSUFBSSxXQUFXLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQztRQUNwQyxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUM7UUFDMUIsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzlCLFdBQVcsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxXQUFXLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUM5RTtRQUVELFdBQVcsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV0RSxPQUFRLGVBQWEsQ0FBQyxpQkFBNkIsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyRSxDQUFDO0NBQ0osQ0FBQTtBQTVDMkIsa0NBQW9CLEdBQUcseUJBQTBCLENBQUE7QUFGaEUsYUFBYTtJQUZ6QixVQUFVLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDOUMsMkJBQTJCLEVBQUU7R0FDakIsYUFBYSxDQThDekI7U0E5Q1ksYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHtcclxuICAgIFNpbmdsZXRvbkFwcFNlcnZpY2VDb250cmFjdCwgQXBwU2VydmljZSwgUHJpb3JpdHksXHJcbiAgICBBc3luY0luaXRpYWxpemFibGUsXHJcbiAgICBFeHBhbmRvXHJcbn0gZnJvbSAnQGtlcGhhcy9jb3JlJztcclxuXHJcbi8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzUwMjIyOTk4L2Vycm9yLWVuY291bnRlcmVkLWluLW1ldGFkYXRhLWdlbmVyYXRlZC1mb3ItZXhwb3J0ZWQtc3ltYm9sLXdoZW4tY29uc3RydWN0aW5nLWFuXHJcblxyXG4vLyBAZHluYW1pY1xyXG4vKipcclxuICogVGhlIGNvbmZpZ3VyYXRpb24gc2VydmljZS5cclxuICpcclxuICogQGV4cG9ydFxyXG4gKiBAY2xhc3MgQ29uZmlndXJhdGlvblxyXG4gKiBAaW1wbGVtZW50cyB7QXN5bmNJbml0aWFsaXphYmxlfVxyXG4gKi9cclxuQEFwcFNlcnZpY2UoeyBvdmVycmlkZVByaW9yaXR5OiBQcmlvcml0eS5Mb3cgfSlcclxuQFNpbmdsZXRvbkFwcFNlcnZpY2VDb250cmFjdCgpXHJcbmV4cG9ydCBjbGFzcyBDb25maWd1cmF0aW9uIGltcGxlbWVudHMgQXN5bmNJbml0aWFsaXphYmxlIHtcclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBjb25maWd1cmF0aW9uRmlsZVVybCA9ICcvYXBwL2NvbmZpZ3VyYXRpb24uanNvbic7XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgY29uZmlndXJhdGlvbkZpbGU6IHt9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRW5zdXJlcyB0aGF0IHRoZSBjb25maWd1cmF0aW9uIGZpbGUgaXMgaW5pdGlhbGl6ZWQuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHt7IGh0dHA6IEh0dHBDbGllbnQsIGNvbmZpZ3VyYXRpb25GaWxlVXJsPzogc3RyaW5nIH19IGNvbnRleHQgVGhlIGNvbnRleHQgY29udGFpbmluZyBpbml0aWFsaXphdGlvbiBkYXRhLlxyXG4gICAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XHJcbiAgICAgKiBAbWVtYmVyb2YgQ29uZmlndXJhdGlvblxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYXN5bmMgaW5pdGlhbGl6ZUFzeW5jKGNvbnRleHQ6IHsgaHR0cDogSHR0cENsaWVudCwgY29uZmlndXJhdGlvbkZpbGVVcmw/OiBzdHJpbmcgfSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIGlmIChDb25maWd1cmF0aW9uLmNvbmZpZ3VyYXRpb25GaWxlKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY29udGV4dC5odHRwLmdldChjb250ZXh0LmNvbmZpZ3VyYXRpb25GaWxlVXJsID8gY29udGV4dC5jb25maWd1cmF0aW9uRmlsZVVybCA6IENvbmZpZ3VyYXRpb24uY29uZmlndXJhdGlvbkZpbGVVcmwpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgIENvbmZpZ3VyYXRpb24uY29uZmlndXJhdGlvbkZpbGUgPSByZXNwb25zZSB8fCB7fTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgZm9yIHRoZSBpbmRpY2F0ZWQgc2VjdGlvbiBuYW1lLlxyXG4gICAgICpcclxuICAgICAqIEB0ZW1wbGF0ZSBUIFRoZSBzZXR0aW5ncyB0eXBlLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHNlY3Rpb25OYW1lIFRoZSBzZWN0aW9uIG5hbWUuXHJcbiAgICAgKiBAcmV0dXJucyB7VH0gVGhlIHNldHRpbmdzLlxyXG4gICAgICogQG1lbWJlcm9mIENvbmZpZ3VyYXRpb25cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFNldHRpbmdzPFQ+KHNldHRpbmdzVHlwZTogVHlwZTxUPik6IFQge1xyXG5cclxuICAgICAgICBpZiAoIUNvbmZpZ3VyYXRpb24uY29uZmlndXJhdGlvbkZpbGUpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgY29uZmlndXJhdGlvbiBtYW5hZ2VyIG11c3QgYmUgaW5pdGlhbGl6ZWQgcHJpb3IgdG8gcmVxdWVzdGluZyBzZXR0aW5ncyBmcm9tIGl0LicpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHNlY3Rpb25OYW1lID0gc2V0dGluZ3NUeXBlLm5hbWU7XHJcbiAgICAgICAgY29uc3QgZW5kaW5nID0gJ1NldHRpbmdzJztcclxuICAgICAgICBpZiAoc2VjdGlvbk5hbWUuZW5kc1dpdGgoZW5kaW5nKSkge1xyXG4gICAgICAgICAgICBzZWN0aW9uTmFtZSA9IHNlY3Rpb25OYW1lLnN1YnN0cmluZygwLCBzZWN0aW9uTmFtZS5sZW5ndGggLSBlbmRpbmcubGVuZ3RoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHNlY3Rpb25OYW1lID0gc2VjdGlvbk5hbWVbMF0udG9Mb3dlckNhc2UoKSArIHNlY3Rpb25OYW1lLnN1YnN0cmluZygxKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIChDb25maWd1cmF0aW9uLmNvbmZpZ3VyYXRpb25GaWxlIGFzIEV4cGFuZG8pW3NlY3Rpb25OYW1lXTtcclxuICAgIH1cclxufVxyXG4iXX0=