UNPKG

ngx-logger

Version:

[![npm version](https://badge.fury.io/js/ngx-logger.svg)](https://www.npmjs.com/package/ngx-logger)

40 lines 5.21 kB
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