UNPKG

@fababracx/ngx-console-logger

Version:

Logging library for Angular

49 lines 6.7 kB
import { Observable } from 'rxjs'; import { tap } from 'rxjs/operators'; import { ngxConsoleLoggerConfigDefault } from '../config/ngx-console-logger-config'; import { NgxConsoleLogger } from '../models/ngx-console-logger'; export function PropertyConsoleLogger(type = 'info', logSetter = true, logGetter = false, config = ngxConsoleLoggerConfigDefault) { NgxConsoleLogger.init(config); // eslint-disable-next-line @typescript-eslint/ban-types return (target, propertyKey) => { let propertyValue; // eslint-disable-next-line @typescript-eslint/no-unused-vars function getter() { if (logGetter) { if (type) { NgxConsoleLogger[type](propertyValue); } else { console.log(propertyValue); } } return propertyValue; } // eslint-disable-next-line @typescript-eslint/no-unused-vars function setter(value) { if (value instanceof Observable) { if (logSetter) { propertyValue = value.pipe(tap(res => { const isArrayOfObjects = Array.isArray(res) && typeof res[0] === 'object'; const logType = isArrayOfObjects ? 'table' : 'log'; console.groupCollapsed(propertyKey?.toString()); console[logType](res); console.groupEnd(); })); } } else { if (logSetter) { if (type) { NgxConsoleLogger[type](value); } else { console.log(value); } } propertyValue = value; } } }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktY29uc29sZS1sb2dnZXIuZGVjb3JhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbnNvbGUtbG9nZ2VyL3NyYy9saWIvZGVjb3JhdG9ycy9wcm9wZXJ0eS1jb25zb2xlLWxvZ2dlci5kZWNvcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFcEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFaEUsTUFBTSxVQUFVLHFCQUFxQixDQUNuQyxPQUFzQyxNQUFNLEVBQzVDLFNBQVMsR0FBRyxJQUFJLEVBQ2hCLFNBQVMsR0FBRyxLQUFLLEVBQ2pCLFNBQWtDLDZCQUE2QjtJQUUvRCxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFOUIsd0RBQXdEO0lBQ3hELE9BQU8sQ0FBQyxNQUFjLEVBQUUsV0FBNEIsRUFBUSxFQUFFO1FBQzVELElBQUksYUFBa0IsQ0FBQztRQUV2Qiw2REFBNkQ7UUFDN0QsU0FBUyxNQUFNO1lBQ2IsSUFBSSxTQUFTLEVBQUU7Z0JBQ2IsSUFBSSxJQUFJLEVBQUU7b0JBQ1IsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7aUJBQ3ZDO3FCQUFNO29CQUNMLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7aUJBQzVCO2FBQ0Y7WUFDRCxPQUFPLGFBQWEsQ0FBQztRQUN2QixDQUFDO1FBRUQsNkRBQTZEO1FBQzdELFNBQVMsTUFBTSxDQUFDLEtBQVU7WUFDeEIsSUFBSSxLQUFLLFlBQVksVUFBVSxFQUFFO2dCQUMvQixJQUFJLFNBQVMsRUFBRTtvQkFDYixhQUFhLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FDeEIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO3dCQUNSLE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLENBQUM7d0JBQzFFLE1BQU0sT0FBTyxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQzt3QkFDbkQsT0FBTyxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQzt3QkFDaEQsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO3dCQUN0QixPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ3JCLENBQUMsQ0FBQyxDQUNILENBQUM7aUJBQ0g7YUFDRjtpQkFBTTtnQkFDTCxJQUFJLFNBQVMsRUFBRTtvQkFDYixJQUFJLElBQUksRUFBRTt3QkFDUixnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztxQkFDL0I7eUJBQU07d0JBQ0wsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztxQkFDcEI7aUJBQ0Y7Z0JBQ0QsYUFBYSxHQUFHLEtBQUssQ0FBQzthQUN2QjtRQUNILENBQUM7SUFDSCxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IG5neENvbnNvbGVMb2dnZXJDb25maWdEZWZhdWx0IH0gZnJvbSAnLi4vY29uZmlnL25neC1jb25zb2xlLWxvZ2dlci1jb25maWcnO1xyXG5pbXBvcnQgeyBJTmd4Q29uc29sZUxvZ2dlckNvbmZpZyB9IGZyb20gJy4uL2ludGVyZmFjZXMvaS1uZ3gtY29uc29sZS1sb2dnZXItY29uZmlnJztcclxuaW1wb3J0IHsgTmd4Q29uc29sZUxvZ2dlciB9IGZyb20gJy4uL21vZGVscy9uZ3gtY29uc29sZS1sb2dnZXInO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIFByb3BlcnR5Q29uc29sZUxvZ2dlcihcclxuICB0eXBlOiBrZXlvZiBJTmd4Q29uc29sZUxvZ2dlckNvbmZpZyA9ICdpbmZvJyxcclxuICBsb2dTZXR0ZXIgPSB0cnVlLFxyXG4gIGxvZ0dldHRlciA9IGZhbHNlLFxyXG4gIGNvbmZpZzogSU5neENvbnNvbGVMb2dnZXJDb25maWcgPSBuZ3hDb25zb2xlTG9nZ2VyQ29uZmlnRGVmYXVsdFxyXG4pOiBQcm9wZXJ0eURlY29yYXRvciB7XHJcbiAgTmd4Q29uc29sZUxvZ2dlci5pbml0KGNvbmZpZyk7XHJcblxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXHJcbiAgcmV0dXJuICh0YXJnZXQ6IE9iamVjdCwgcHJvcGVydHlLZXk6IHN0cmluZyB8IHN5bWJvbCk6IHZvaWQgPT4ge1xyXG4gICAgbGV0IHByb3BlcnR5VmFsdWU6IGFueTtcclxuXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXHJcbiAgICBmdW5jdGlvbiBnZXR0ZXIoKTogYW55IHtcclxuICAgICAgaWYgKGxvZ0dldHRlcikge1xyXG4gICAgICAgIGlmICh0eXBlKSB7XHJcbiAgICAgICAgICBOZ3hDb25zb2xlTG9nZ2VyW3R5cGVdKHByb3BlcnR5VmFsdWUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhwcm9wZXJ0eVZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHByb3BlcnR5VmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xyXG4gICAgZnVuY3Rpb24gc2V0dGVyKHZhbHVlOiBhbnkpOiBhbnkge1xyXG4gICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBPYnNlcnZhYmxlKSB7XHJcbiAgICAgICAgaWYgKGxvZ1NldHRlcikge1xyXG4gICAgICAgICAgcHJvcGVydHlWYWx1ZSA9IHZhbHVlLnBpcGUoXHJcbiAgICAgICAgICAgIHRhcChyZXMgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGlzQXJyYXlPZk9iamVjdHMgPSBBcnJheS5pc0FycmF5KHJlcykgJiYgdHlwZW9mIHJlc1swXSA9PT0gJ29iamVjdCc7XHJcbiAgICAgICAgICAgICAgY29uc3QgbG9nVHlwZSA9IGlzQXJyYXlPZk9iamVjdHMgPyAndGFibGUnIDogJ2xvZyc7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5ncm91cENvbGxhcHNlZChwcm9wZXJ0eUtleT8udG9TdHJpbmcoKSk7XHJcbiAgICAgICAgICAgICAgY29uc29sZVtsb2dUeXBlXShyZXMpO1xyXG4gICAgICAgICAgICAgIGNvbnNvbGUuZ3JvdXBFbmQoKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChsb2dTZXR0ZXIpIHtcclxuICAgICAgICAgIGlmICh0eXBlKSB7XHJcbiAgICAgICAgICAgIE5neENvbnNvbGVMb2dnZXJbdHlwZV0odmFsdWUpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2codmFsdWUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBwcm9wZXJ0eVZhbHVlID0gdmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG59XHJcbiJdfQ==