ngx-logger
Version:
[](https://www.npmjs.com/package/ngx-logger)
40 lines • 5.21 kB
JavaScript
export class NGXLoggerConfigEngine {
constructor(config) {
this.config = this._clone(config);
}
/** Get a readonly access to the level configured for the NGXLogger */
get level() {
return this.config.level;
}
/** Get a readonly access to the serverLogLevel configured for the NGXLogger */
get serverLogLevel() {
return this.config.serverLogLevel;
}
updateConfig(config) {
this.config = this._clone(config);
}
/** Update the config partially
* This is useful if you want to update only one parameter of the config
*/
partialUpdateConfig(partialConfig) {
// avoid any error if the config is incorrect
if (!partialConfig) {
return;
}
Object.keys(partialConfig).forEach(configParamKey => {
this.config[configParamKey] = partialConfig[configParamKey];
});
}
getConfig() {
return this._clone(this.config);
}
// TODO: This is a shallow clone, If the config ever becomes hierarchical we must make this a deep clone
_clone(object) {
const cloneConfig = { level: null };
Object.keys(object).forEach((key) => {
cloneConfig[key] = object[key];
});
return cloneConfig;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLWVuZ2luZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29uZmlnL2NvbmZpZy1lbmdpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxPQUFPLHFCQUFxQjtJQUloQyxZQUNFLE1BQXdCO1FBRXhCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsc0VBQXNFO0lBQ3RFLElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUVELCtFQUErRTtJQUMvRSxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQXdCO1FBQ25DLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxtQkFBbUIsQ0FBQyxhQUF3QztRQUMxRCw2Q0FBNkM7UUFDN0MsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNsQixPQUFPO1NBQ1I7UUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUNsRCxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM5RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsd0dBQXdHO0lBQ2hHLE1BQU0sQ0FBQyxNQUFXO1FBQ3hCLE1BQU0sV0FBVyxHQUFxQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUV0RCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2xDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ3hMb2dnZXJMZXZlbCB9IGZyb20gJy4vLi4vdHlwZXMvbG9nZ2VyLWxldmVsLmVudW0nO1xyXG5pbXBvcnQgeyBJTkdYTG9nZ2VyQ29uZmlnRW5naW5lIH0gZnJvbSAnLi9pY29uZmlnLWVuZ2luZSc7XHJcbmltcG9ydCB7IElOR1hMb2dnZXJDb25maWcgfSBmcm9tICcuL2ljb25maWcnO1xyXG5cclxuZXhwb3J0IGNsYXNzIE5HWExvZ2dlckNvbmZpZ0VuZ2luZSBpbXBsZW1lbnRzIElOR1hMb2dnZXJDb25maWdFbmdpbmUge1xyXG5cclxuICBwcml2YXRlIGNvbmZpZzogSU5HWExvZ2dlckNvbmZpZztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBjb25maWc6IElOR1hMb2dnZXJDb25maWcsXHJcbiAgKSB7XHJcbiAgICB0aGlzLmNvbmZpZyA9IHRoaXMuX2Nsb25lKGNvbmZpZyk7XHJcbiAgfVxyXG5cclxuICAvKiogR2V0IGEgcmVhZG9ubHkgYWNjZXNzIHRvIHRoZSBsZXZlbCBjb25maWd1cmVkIGZvciB0aGUgTkdYTG9nZ2VyICovXHJcbiAgZ2V0IGxldmVsKCk6IE5neExvZ2dlckxldmVsIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZy5sZXZlbDtcclxuICB9XHJcblxyXG4gIC8qKiBHZXQgYSByZWFkb25seSBhY2Nlc3MgdG8gdGhlIHNlcnZlckxvZ0xldmVsIGNvbmZpZ3VyZWQgZm9yIHRoZSBOR1hMb2dnZXIgKi9cclxuICBnZXQgc2VydmVyTG9nTGV2ZWwoKTogTmd4TG9nZ2VyTGV2ZWwge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnNlcnZlckxvZ0xldmVsO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlQ29uZmlnKGNvbmZpZzogSU5HWExvZ2dlckNvbmZpZykge1xyXG4gICAgdGhpcy5jb25maWcgPSB0aGlzLl9jbG9uZShjb25maWcpO1xyXG4gIH1cclxuXHJcbiAgLyoqIFVwZGF0ZSB0aGUgY29uZmlnIHBhcnRpYWxseVxyXG4gICAqIFRoaXMgaXMgdXNlZnVsIGlmIHlvdSB3YW50IHRvIHVwZGF0ZSBvbmx5IG9uZSBwYXJhbWV0ZXIgb2YgdGhlIGNvbmZpZ1xyXG4gICAqL1xyXG4gIHBhcnRpYWxVcGRhdGVDb25maWcocGFydGlhbENvbmZpZzogUGFydGlhbDxJTkdYTG9nZ2VyQ29uZmlnPik6IHZvaWQge1xyXG4gICAgLy8gYXZvaWQgYW55IGVycm9yIGlmIHRoZSBjb25maWcgaXMgaW5jb3JyZWN0XHJcbiAgICBpZiAoIXBhcnRpYWxDb25maWcpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIE9iamVjdC5rZXlzKHBhcnRpYWxDb25maWcpLmZvckVhY2goY29uZmlnUGFyYW1LZXkgPT4ge1xyXG4gICAgICB0aGlzLmNvbmZpZ1tjb25maWdQYXJhbUtleV0gPSBwYXJ0aWFsQ29uZmlnW2NvbmZpZ1BhcmFtS2V5XTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29uZmlnKCk6IElOR1hMb2dnZXJDb25maWcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Nsb25lKHRoaXMuY29uZmlnKTtcclxuICB9XHJcblxyXG4gIC8vIFRPRE86IFRoaXMgaXMgYSBzaGFsbG93IGNsb25lLCBJZiB0aGUgY29uZmlnIGV2ZXIgYmVjb21lcyBoaWVyYXJjaGljYWwgd2UgbXVzdCBtYWtlIHRoaXMgYSBkZWVwIGNsb25lXHJcbiAgcHJpdmF0ZSBfY2xvbmUob2JqZWN0OiBhbnkpIHtcclxuICAgIGNvbnN0IGNsb25lQ29uZmlnOiBJTkdYTG9nZ2VyQ29uZmlnID0geyBsZXZlbDogbnVsbCB9O1xyXG5cclxuICAgIE9iamVjdC5rZXlzKG9iamVjdCkuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICAgIGNsb25lQ29uZmlnW2tleV0gPSBvYmplY3Rba2V5XTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBjbG9uZUNvbmZpZztcclxuICB9XHJcbn1cclxuIl19