@yaagoub/decorators
Version:
Angular decorators
57 lines • 8.23 kB
JavaScript
import { Injectable } from '@angular/core';
import { SettingsService } from './ygb-settings.service';
import { printLog } from '../utils';
import { SendLogService } from './ygb-send-log.service';
import * as i0 from "@angular/core";
import * as i1 from "./ygb-settings.service";
import * as i2 from "./ygb-send-log.service";
export class ControlLogService {
settings;
sendLogService;
constructor(settings, sendLogService) {
this.settings = settings;
this.sendLogService = sendLogService;
}
/**
* Controls the logging based on the type, context, destination, and message.
*
* @param type - The type of the log (e.g., error, info, debug).
* @param context - The context in which the log is being made.
* @param destination - The destination where the log should be sent (e.g., console, server, both).
* @param message - The message to be logged.
*
* @example
* const context: YgbContext = { userId: '12345', sessionId: 'abcde' };
* controlLog('info', context, 'console', 'This is an informational message.');
* controlLog('error', undefined, 'server', 'An error occurred.');
*/
controlLog(type, context, destination, message) {
if (destination === 'none' && this.settings.getSettings().destination === 'console') {
printLog(type, message ?? '', context);
}
else if (destination === 'none' && this.settings.getSettings().destination === 'server') {
this.sendLogService.sendLogToBackend(type, message ?? '', context ?? {});
}
else if (destination === 'none' && this.settings.getSettings().destination === 'both') {
printLog(type, message ?? '', context);
this.sendLogService.sendLogToBackend(type, message ?? '', context ?? {});
}
else if (destination === 'console') {
printLog(type, message ?? '', context);
}
else if (destination === 'server') {
this.sendLogService.sendLogToBackend(type, message ?? '', context ?? {});
}
else if (destination === 'both') {
printLog(type, message ?? '', context);
this.sendLogService.sendLogToBackend(type, message ?? '', context ?? {});
}
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ControlLogService, deps: [{ token: i1.SettingsService }, { token: i2.SendLogService }], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ControlLogService, providedIn: 'root' });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ControlLogService, decorators: [{
type: Injectable,
args: [{ providedIn: 'root' }]
}], ctorParameters: () => [{ type: i1.SettingsService }, { type: i2.SendLogService }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWdiLWNvbnRyb2wtbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RlY29yYXRvcnMvc3JjL2xvZ2dpbmcvc2VydmljZXMveWdiLWNvbnRyb2wtbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7QUFHeEQsTUFBTSxPQUFPLGlCQUFpQjtJQUNSO0lBQW1DO0lBQXZELFlBQW9CLFFBQXlCLEVBQVUsY0FBOEI7UUFBakUsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFBRyxDQUFDO0lBRXpGOzs7Ozs7Ozs7Ozs7T0FZRztJQUNILFVBQVUsQ0FDUixJQUFnQixFQUNoQixPQUErQixFQUMvQixXQUE4QixFQUM5QixPQUFlO1FBRWYsSUFBSSxXQUFXLEtBQUssTUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsV0FBVyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3BGLFFBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxJQUFJLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN6QyxDQUFDO2FBQU0sSUFBSSxXQUFXLEtBQUssTUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsV0FBVyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzFGLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLE9BQU8sSUFBSSxFQUFFLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLENBQUM7YUFBTSxJQUFJLFdBQVcsS0FBSyxNQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxXQUFXLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDeEYsUUFBUSxDQUFDLElBQUksRUFBRSxPQUFPLElBQUksRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLE9BQU8sSUFBSSxFQUFFLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLENBQUM7YUFBTSxJQUFJLFdBQVcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNyQyxRQUFRLENBQUMsSUFBSSxFQUFFLE9BQU8sSUFBSSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDekMsQ0FBQzthQUFNLElBQUksV0FBVyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLE9BQU8sSUFBSSxFQUFFLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLENBQUM7YUFBTSxJQUFJLFdBQVcsS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUNsQyxRQUFRLENBQUMsSUFBSSxFQUFFLE9BQU8sSUFBSSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsT0FBTyxJQUFJLEVBQUUsRUFBRSxPQUFPLElBQUksRUFBRSxDQUFDLENBQUM7UUFDM0UsQ0FBQztJQUNILENBQUM7dUdBckNVLGlCQUFpQjsyR0FBakIsaUJBQWlCLGNBREosTUFBTTs7MkZBQ25CLGlCQUFpQjtrQkFEN0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuL3lnYi1zZXR0aW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7IFlnYkNvbnRleHQsIFlnYkxvZ0Rlc3RpbmF0aW9uLCBZZ2JMb2dUeXBlIH0gZnJvbSAnLi4vdHlwZXMveWdiLXR5cGVzJztcbmltcG9ydCB7IHByaW50TG9nIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgU2VuZExvZ1NlcnZpY2UgfSBmcm9tICcuL3lnYi1zZW5kLWxvZy5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBDb250cm9sTG9nU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2V0dGluZ3M6IFNldHRpbmdzU2VydmljZSwgcHJpdmF0ZSBzZW5kTG9nU2VydmljZTogU2VuZExvZ1NlcnZpY2UpIHt9XG5cbiAgLyoqXG4gICAqIENvbnRyb2xzIHRoZSBsb2dnaW5nIGJhc2VkIG9uIHRoZSB0eXBlLCBjb250ZXh0LCBkZXN0aW5hdGlvbiwgYW5kIG1lc3NhZ2UuXG4gICAqIFxuICAgKiBAcGFyYW0gdHlwZSAtIFRoZSB0eXBlIG9mIHRoZSBsb2cgKGUuZy4sIGVycm9yLCBpbmZvLCBkZWJ1ZykuXG4gICAqIEBwYXJhbSBjb250ZXh0IC0gVGhlIGNvbnRleHQgaW4gd2hpY2ggdGhlIGxvZyBpcyBiZWluZyBtYWRlLlxuICAgKiBAcGFyYW0gZGVzdGluYXRpb24gLSBUaGUgZGVzdGluYXRpb24gd2hlcmUgdGhlIGxvZyBzaG91bGQgYmUgc2VudCAoZS5nLiwgY29uc29sZSwgc2VydmVyLCBib3RoKS5cbiAgICogQHBhcmFtIG1lc3NhZ2UgLSBUaGUgbWVzc2FnZSB0byBiZSBsb2dnZWQuXG4gICAqIFxuICAgKiBAZXhhbXBsZVxuICAgKiBjb25zdCBjb250ZXh0OiBZZ2JDb250ZXh0ID0geyB1c2VySWQ6ICcxMjM0NScsIHNlc3Npb25JZDogJ2FiY2RlJyB9O1xuICAgKiBjb250cm9sTG9nKCdpbmZvJywgY29udGV4dCwgJ2NvbnNvbGUnLCAnVGhpcyBpcyBhbiBpbmZvcm1hdGlvbmFsIG1lc3NhZ2UuJyk7XG4gICAqIGNvbnRyb2xMb2coJ2Vycm9yJywgdW5kZWZpbmVkLCAnc2VydmVyJywgJ0FuIGVycm9yIG9jY3VycmVkLicpO1xuICAgKi9cbiAgY29udHJvbExvZyhcbiAgICB0eXBlOiBZZ2JMb2dUeXBlLFxuICAgIGNvbnRleHQ6IFlnYkNvbnRleHQgfCB1bmRlZmluZWQsXG4gICAgZGVzdGluYXRpb246IFlnYkxvZ0Rlc3RpbmF0aW9uLFxuICAgIG1lc3NhZ2U6IHN0cmluZ1xuICApIHtcbiAgICBpZiAoZGVzdGluYXRpb24gPT09ICdub25lJyAmJiB0aGlzLnNldHRpbmdzLmdldFNldHRpbmdzKCkuZGVzdGluYXRpb24gPT09ICdjb25zb2xlJykge1xuICAgICAgcHJpbnRMb2codHlwZSwgbWVzc2FnZSA/PyAnJywgY29udGV4dCk7XG4gICAgfSBlbHNlIGlmIChkZXN0aW5hdGlvbiA9PT0gJ25vbmUnICYmIHRoaXMuc2V0dGluZ3MuZ2V0U2V0dGluZ3MoKS5kZXN0aW5hdGlvbiA9PT0gJ3NlcnZlcicpIHtcbiAgICAgIHRoaXMuc2VuZExvZ1NlcnZpY2Uuc2VuZExvZ1RvQmFja2VuZCh0eXBlLCBtZXNzYWdlID8/ICcnLCBjb250ZXh0ID8/IHt9KTtcbiAgICB9IGVsc2UgaWYgKGRlc3RpbmF0aW9uID09PSAnbm9uZScgJiYgdGhpcy5zZXR0aW5ncy5nZXRTZXR0aW5ncygpLmRlc3RpbmF0aW9uID09PSAnYm90aCcpIHtcbiAgICAgIHByaW50TG9nKHR5cGUsIG1lc3NhZ2UgPz8gJycsIGNvbnRleHQpO1xuICAgICAgdGhpcy5zZW5kTG9nU2VydmljZS5zZW5kTG9nVG9CYWNrZW5kKHR5cGUsIG1lc3NhZ2UgPz8gJycsIGNvbnRleHQgPz8ge30pO1xuICAgIH0gZWxzZSBpZiAoZGVzdGluYXRpb24gPT09ICdjb25zb2xlJykge1xuICAgICAgcHJpbnRMb2codHlwZSwgbWVzc2FnZSA/PyAnJywgY29udGV4dCk7XG4gICAgfSBlbHNlIGlmIChkZXN0aW5hdGlvbiA9PT0gJ3NlcnZlcicpIHtcbiAgICAgIHRoaXMuc2VuZExvZ1NlcnZpY2Uuc2VuZExvZ1RvQmFja2VuZCh0eXBlLCBtZXNzYWdlID8/ICcnLCBjb250ZXh0ID8/IHt9KTtcbiAgICB9IGVsc2UgaWYgKGRlc3RpbmF0aW9uID09PSAnYm90aCcpIHtcbiAgICAgIHByaW50TG9nKHR5cGUsIG1lc3NhZ2UgPz8gJycsIGNvbnRleHQpO1xuICAgICAgdGhpcy5zZW5kTG9nU2VydmljZS5zZW5kTG9nVG9CYWNrZW5kKHR5cGUsIG1lc3NhZ2UgPz8gJycsIGNvbnRleHQgPz8ge30pO1xuICAgIH1cbiAgfVxufVxuIl19