@yaagoub/decorators
Version:
Angular decorators
43 lines • 4.28 kB
JavaScript
import { Injectable } from '@angular/core';
import { SettingsService } from './ygb-settings.service';
import * as i0 from "@angular/core";
import * as i1 from "./ygb-settings.service";
export class SendLogService {
settings;
constructor(settings) {
this.settings = settings;
}
/**
* Sends a log entry to the backend.
*
* @param level - The level of the log (e.g., 'info', 'error').
* @param message - The log message.
* @param context - Additional context for the log entry.
*
* @example
* const logService = new SendLogService(settingsService);
* logService.sendLogToBackend('info', 'This is a log message', { userId: 123 });
*/
sendLogToBackend(level, message, context = {}) {
const logEntry = {
level,
message,
context,
timestamp: new Date().toISOString(),
};
fetch(this.settings.getSettings().path, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(logEntry),
});
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: SendLogService, deps: [{ token: i1.SettingsService }], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: SendLogService, providedIn: 'root' });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: SendLogService, decorators: [{
type: Injectable,
args: [{ providedIn: 'root' }]
}], ctorParameters: () => [{ type: i1.SettingsService }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWdiLXNlbmQtbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RlY29yYXRvcnMvc3JjL2xvZ2dpbmcvc2VydmljZXMveWdiLXNlbmQtbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7OztBQUd6RCxNQUFNLE9BQU8sY0FBYztJQUNMO0lBQXBCLFlBQW9CLFFBQXlCO1FBQXpCLGFBQVEsR0FBUixRQUFRLENBQWlCO0lBQUksQ0FBQztJQUVsRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsZ0JBQWdCLENBQUMsS0FBYSxFQUFFLE9BQWUsRUFBRSxVQUFlLEVBQUU7UUFFaEUsTUFBTSxRQUFRLEdBQUc7WUFDZixLQUFLO1lBQ0wsT0FBTztZQUNQLE9BQU87WUFDUCxTQUFTLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUU7U0FDcEMsQ0FBQztRQUVGLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksRUFBRTtZQUN0QyxNQUFNLEVBQUUsTUFBTTtZQUNkLE9BQU8sRUFBRTtnQkFDVCxjQUFjLEVBQUUsa0JBQWtCO2FBQ2pDO1lBQ0QsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO1NBQy9CLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBOUJVLGNBQWM7MkdBQWQsY0FBYyxjQURGLE1BQU07OzJGQUNsQixjQUFjO2tCQUQxQixVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNldHRpbmdzU2VydmljZSB9IGZyb20gJy4veWdiLXNldHRpbmdzLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBTZW5kTG9nU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2V0dGluZ3M6IFNldHRpbmdzU2VydmljZSkgeyB9XG5cbiAgLyoqXG4gICAqIFNlbmRzIGEgbG9nIGVudHJ5IHRvIHRoZSBiYWNrZW5kLlxuICAgKiBcbiAgICogQHBhcmFtIGxldmVsIC0gVGhlIGxldmVsIG9mIHRoZSBsb2cgKGUuZy4sICdpbmZvJywgJ2Vycm9yJykuXG4gICAqIEBwYXJhbSBtZXNzYWdlIC0gVGhlIGxvZyBtZXNzYWdlLlxuICAgKiBAcGFyYW0gY29udGV4dCAtIEFkZGl0aW9uYWwgY29udGV4dCBmb3IgdGhlIGxvZyBlbnRyeS5cbiAgICogXG4gICAqIEBleGFtcGxlXG4gICAqIGNvbnN0IGxvZ1NlcnZpY2UgPSBuZXcgU2VuZExvZ1NlcnZpY2Uoc2V0dGluZ3NTZXJ2aWNlKTtcbiAgICogbG9nU2VydmljZS5zZW5kTG9nVG9CYWNrZW5kKCdpbmZvJywgJ1RoaXMgaXMgYSBsb2cgbWVzc2FnZScsIHsgdXNlcklkOiAxMjMgfSk7XG4gICAqL1xuICBzZW5kTG9nVG9CYWNrZW5kKGxldmVsOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZywgY29udGV4dDogYW55ID0ge30pIHtcbiAgICBcbiAgICBjb25zdCBsb2dFbnRyeSA9IHtcbiAgICAgIGxldmVsLFxuICAgICAgbWVzc2FnZSxcbiAgICAgIGNvbnRleHQsXG4gICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICB9O1xuXG4gICAgZmV0Y2godGhpcy5zZXR0aW5ncy5nZXRTZXR0aW5ncygpLnBhdGgsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgIH0sXG4gICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShsb2dFbnRyeSksXG4gICAgfSk7XG4gIH1cbiAgXG59Il19