diff --git a/README.md b/README.md index b5afe63..e152cf1 100644 --- a/README.md +++ b/README.md @@ -38,9 +38,6 @@ setting of logging levels and convenient work with groups. Among other things, y - [Add css classes](#example-css-classes) - [Output pretty json `stringify`](#example-pretty-json) - [Copy `json, object, text` to clipboard](#example-clipboard) - - [Basic decorators](#example-decorators) - - [Decorator groups](#example-decorator-groups) - - [Decorator groups with function title](#example-decorator-group-with-function-title) - [Configuration `Angular Logger`](#example-full-configurations) * [Todo](#todo) diff --git a/helpers/custom-colors.enum.ts b/helpers/custom-colors.enum.ts index d167170..e875cfc 100644 --- a/helpers/custom-colors.enum.ts +++ b/helpers/custom-colors.enum.ts @@ -1,15 +1,15 @@ export enum CUSTOM_COLORS { - TRACE = 'BlueViolet', - DEBUG = 'CornflowerBlue', - INFO = 'DarkGreen', - WARN = 'Coral', - ERROR = 'Crimson' + TRACE = 'BlueViolet', + DEBUG = 'CornflowerBlue', + INFO = 'DarkGreen', + WARN = 'Coral', + ERROR = 'Crimson' } export enum CUSTOM_LABELS { - TRACE = 'trace:', - DEBUG = 'debug:', - INFO = 'info:', - WARN = 'warning:', - ERROR = 'error:' + TRACE = 'trace:', + DEBUG = 'debug:', + INFO = 'info:', + WARN = 'warning:', + ERROR = 'error:' } diff --git a/package.json b/package.json index 8736bb8..441ec1e 100644 --- a/package.json +++ b/package.json @@ -1,70 +1,64 @@ { - "name": "logger", - "version": "0.0.0", - "scripts": { - "ng": "ng", - "jest": "jest", - "start": "ng serve", - "copy-readme": "ts-node --project tsconfig.tools.json ./tools/copy-readme", - "build": "ng build logger && npm run copy-readme", - "build.meta": "echo 'prebuild'", - "test": "jest --config ./jest.app.config.js --coverage", - "lint": "ng lint", - "format": "prettier --write \"*/**/*.ts\"", - "coverage": "jest --config ./jest.app.config.js --coverage && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage" - }, - "husky": { - "hooks": { - "pre-commit": "npm run format" - } - }, - "private": true, - "dependencies": { - "@angular/animations": "~7.2.0", - "@angular/common": "~7.2.0", - "@angular/compiler": "~7.2.0", - "@angular/core": "~7.2.0", - "@angular/forms": "~7.2.0", - "@angular/platform-browser": "~7.2.0", - "@angular/platform-browser-dynamic": "~7.2.0", - "@angular/router": "~7.2.0", - "core-js": "^2.5.4", - "devtools-detect": "^3.0.0", - "rxjs": "~6.3.3", - "tslib": "^1.9.0", - "zone.js": "~0.8.26" - }, - "devDependencies": { - "@angular-devkit/build-angular": "^0.13.9", - "@angular-devkit/build-ng-packagr": "~0.13.0", - "@angular/cli": "~7.3.8", - "@angular/compiler-cli": "~7.2.0", - "@angular/language-service": "~7.2.0", - "@types/jasmine": "~2.8.8", - "@types/jasminewd2": "~2.0.3", - "@types/node": "~8.9.4", - "codelyzer": "^4.5.0", - "coveralls": "^3.0.3", - "husky": "^2.3.0", - "jasmine-core": "~2.99.1", - "jasmine-spec-reporter": "~4.2.1", - "jest": "24.0.0", - "jest-cli": "^24.8.0", - "jest-preset-angular": "^7.1.0", - "karma": "~4.0.0", - "karma-chrome-launcher": "~2.2.0", - "karma-coverage-istanbul-reporter": "~2.0.1", - "karma-jasmine": "~1.1.2", - "karma-jasmine-html-reporter": "^0.2.2", - "ng-packagr": "^5.1.0", - "prettier": "^1.17.1", - "protractor": "~5.4.0", - "ts-node": "^7.0.1", - "tsickle": ">=0.34.0", - "tslib": "^1.9.0", - "tslint": "~5.11.0", - "tslint-eslint-rules": "^5.4.0", - "tslint-sonarts": "^1.9.0", - "typescript": "~3.2.2" - } + "name": "logger", + "version": "0.0.0", + "scripts": { + "ng": "ng", + "jest": "jest", + "start": "ng serve", + "copy-readme": "ts-node --project tsconfig.tools.json ./tools/copy-readme", + "build": "ng build logger && npm run copy-readme", + "build.meta": "echo 'prebuild'", + "test": "jest --config ./jest.app.config.js --coverage", + "lint": "ng lint", + "format": "prettier --write \"*/**/*.ts\"", + "coverage": "jest --config ./jest.app.config.js --coverage && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage" + }, + "private": true, + "dependencies": { + "@angular/animations": "~7.2.0", + "@angular/common": "~7.2.0", + "@angular/compiler": "~7.2.0", + "@angular/core": "~7.2.0", + "@angular/forms": "~7.2.0", + "@angular/platform-browser": "~7.2.0", + "@angular/platform-browser-dynamic": "~7.2.0", + "@angular/router": "~7.2.0", + "core-js": "^2.5.4", + "devtools-detect": "^3.0.0", + "rxjs": "~6.3.3", + "tslib": "^1.9.0", + "zone.js": "~0.8.26" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^0.13.9", + "@angular-devkit/build-ng-packagr": "~0.13.0", + "@angular/cli": "~7.3.8", + "@angular/compiler-cli": "~7.2.0", + "@angular/language-service": "~7.2.0", + "@types/jasmine": "~2.8.8", + "@types/jasminewd2": "~2.0.3", + "@types/node": "~8.9.4", + "codelyzer": "^4.5.0", + "coveralls": "^3.0.3", + "jasmine-core": "~2.99.1", + "jasmine-spec-reporter": "~4.2.1", + "jest": "24.0.0", + "jest-cli": "^24.8.0", + "jest-preset-angular": "^7.1.0", + "karma": "~4.0.0", + "karma-chrome-launcher": "~2.2.0", + "karma-coverage-istanbul-reporter": "~2.0.1", + "karma-jasmine": "~1.1.2", + "karma-jasmine-html-reporter": "^0.2.2", + "ng-packagr": "^5.1.0", + "prettier": "^1.17.1", + "protractor": "~5.4.0", + "ts-node": "^7.0.1", + "tsickle": ">=0.34.0", + "tslib": "^1.9.0", + "tslint": "~5.11.0", + "tslint-eslint-rules": "^5.4.0", + "tslint-sonarts": "^1.9.0", + "typescript": "~3.2.2" + } } diff --git a/projects/logger/src/lib/logger.interfaces.ts b/projects/logger/src/lib/logger.interfaces.ts index 6d6c24b..553984b 100644 --- a/projects/logger/src/lib/logger.interfaces.ts +++ b/projects/logger/src/lib/logger.interfaces.ts @@ -2,7 +2,7 @@ import { LoggerService } from './logger.service'; import { LoggerLevel } from './logger.config'; import { InjectionToken } from '@angular/core'; -export type Pipeline = (logger: LoggerService) => T; +export type Pipeline = (logger: LoggerService) => any; export interface GroupMethods extends Function { group(label: string, pipeline?: Pipeline): LoggerService; diff --git a/projects/logger/src/lib/logger.options.ts b/projects/logger/src/lib/logger.options.ts index 80b6654..cc65e5e 100644 --- a/projects/logger/src/lib/logger.options.ts +++ b/projects/logger/src/lib/logger.options.ts @@ -8,11 +8,11 @@ export class LoggerConfigurator implements LoggerOptions { public cssClassMap: object = {}; public useLevelGroup: boolean = true; public labelColors: ObjectKeyMap = { - [LoggerLevel.TRACE]: COLORS.TRACE, - [LoggerLevel.DEBUG]: COLORS.DEBUG, - [LoggerLevel.INFO]: COLORS.INFO, - [LoggerLevel.WARN]: COLORS.WARN, - [LoggerLevel.ERROR]: COLORS.ERROR + [LoggerLevel.TRACE]: COLORS.TRACE, + [LoggerLevel.DEBUG]: COLORS.DEBUG, + [LoggerLevel.INFO]: COLORS.INFO, + [LoggerLevel.WARN]: COLORS.WARN, + [LoggerLevel.ERROR]: COLORS.ERROR }; public labelNames: ObjectKeyMap = { diff --git a/projects/logger/src/lib/logger.service.ts b/projects/logger/src/lib/logger.service.ts index 1fd8442..7dd85a4 100644 --- a/projects/logger/src/lib/logger.service.ts +++ b/projects/logger/src/lib/logger.service.ts @@ -10,7 +10,6 @@ import { ClipboardFactory } from './services/clipboard-factory.service'; @Injectable() export class LoggerService { - private readonly DEFAULT_DEPTH: number = 2; constructor( public readonly clipboard: ClipboardFactory, public readonly cssFactory: CssFactory, @@ -114,7 +113,7 @@ export class LoggerService { } public prettyJSON(json: ObjectKeyMap): string[] { - return this.jsonFactory.colorsJSON(JSON.stringify(json, null, this.DEFAULT_DEPTH)); + return this.jsonFactory.colorsJSON(JSON.stringify(json, null, 2)); } public cssClass(cssClassName: string): LoggerService { diff --git a/projects/logger/src/lib/services/clipboard-factory.service.ts b/projects/logger/src/lib/services/clipboard-factory.service.ts index 42ab482..77ff083 100644 --- a/projects/logger/src/lib/services/clipboard-factory.service.ts +++ b/projects/logger/src/lib/services/clipboard-factory.service.ts @@ -3,7 +3,6 @@ import { Clipboard, SetDataType } from '../logger.interfaces'; @Injectable() export class ClipboardFactory implements Clipboard { - private readonly DEFAULT_DEPTH: number = 4; public get clipboardSetData(): SetDataType { const dataTransfer: DataTransfer = (window as any).clipboardData; return dataTransfer && dataTransfer.setData; @@ -14,7 +13,7 @@ export class ClipboardFactory implements Clipboard { } public copyOnBuffer(data: any): boolean { - const text: string = typeof data !== 'string' ? JSON.stringify(data, null, this.DEFAULT_DEPTH) : data; + const text: string = typeof data !== 'string' ? JSON.stringify(data, null, 4) : data; let isExec: boolean = false; if (this.clipboardSetData) { diff --git a/projects/logger/src/lib/services/group-factory.service.ts b/projects/logger/src/lib/services/group-factory.service.ts index 0618e00..3b587ac 100644 --- a/projects/logger/src/lib/services/group-factory.service.ts +++ b/projects/logger/src/lib/services/group-factory.service.ts @@ -29,25 +29,24 @@ export class GroupFactory { } } - public group(title: string, pipeline: Pipeline, logger: LoggerService, level: LoggerLevel): T { + public group(title: string, pipeline: Pipeline, logger: LoggerService, level: LoggerLevel): any { const group: GroupMethod = this.console.instance.group.bind(this.console.instance); - return this.createGroupLogger(group, title, pipeline, logger, level); + return this.createGroupLogger(group, title, pipeline, logger, level); } - public groupCollapsed(title: string, pipeline: Pipeline, logger: LoggerService, level: LoggerLevel): T { + public groupCollapsed(title: string, pipeline: Pipeline, logger: LoggerService, level: LoggerLevel): any { const groupCollapsed: GroupMethod = this.console.instance.groupCollapsed.bind(this.console.instance); - return this.createGroupLogger(groupCollapsed, title, pipeline, logger, level); + return this.createGroupLogger(groupCollapsed, title, pipeline, logger, level); } - private createGroupLogger( + private createGroupLogger( groupType: GroupMethod, title: string, pipeline: Pipeline, logger: LoggerService, level: LoggerLevel - ): T { + ): any { const showGroup: boolean = this.console.minLevel <= level; - let pipeLineResult: T; if (showGroup) { this.executePipesGroup = true; this.counterOpenedGroup++; @@ -59,12 +58,10 @@ export class GroupFactory { if (pipeline) { const pipe: any = pipeline(logger); this.close(); - pipeLineResult = pipe; + return pipe; } } else { this.executePipesGroup = false; } - - return pipeLineResult; } } diff --git a/projects/logger/tests/decorators.spec.ts b/projects/logger/tests/decorators.spec.ts index 3fb091c..911fdc0 100644 --- a/projects/logger/tests/decorators.spec.ts +++ b/projects/logger/tests/decorators.spec.ts @@ -1,7 +1,7 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; import { ConsoleFake, TestLoggerLineType } from '../../../helpers/console-fake'; import { LoggerModule } from '../src/lib/logger.module'; -import { MyTestComponent } from '../../../helpers/test.component'; +import { MyTestComponent } from './mocks/test.component'; import { LoggerService } from '../src/lib/logger.service'; describe('[TEST]: Decorator API', () => { diff --git a/helpers/test.component.ts b/projects/logger/tests/mocks/test.component.ts similarity index 63% rename from helpers/test.component.ts rename to projects/logger/tests/mocks/test.component.ts index 4f73313..dac6fe1 100644 --- a/helpers/test.component.ts +++ b/projects/logger/tests/mocks/test.component.ts @@ -1,15 +1,15 @@ import { Component } from '@angular/core'; -import { LoggerService } from '../projects/logger/src/lib/logger.service'; -import { Logger } from '../projects/logger/src/lib/decorators/logger.decorator'; -import { Debug } from '../projects/logger/src/lib/decorators/debug.decorator'; -import { Trace } from '../projects/logger/src/lib/decorators/trace.decorator'; -import { Info } from '../projects/logger/src/lib/decorators/info.decorator'; -import { Error } from '../projects/logger/src/lib/decorators/error.decorator'; -import { Warn } from '../projects/logger/src/lib/decorators/warn.decorator'; -import { Log } from '../projects/logger/src/lib/decorators/log.decorator'; -import { Group } from '../projects/logger/src/lib/decorators/groups/group.decorator'; -import { GroupCollapsed } from '../projects/logger/src/lib/decorators/groups/group-collapsed.decorator'; -import { LoggerLevel } from '../projects/logger/src/lib/logger.config'; +import { LoggerService } from '../../src/lib/logger.service'; +import { Logger } from '../../src/lib/decorators/logger.decorator'; +import { Debug } from '../../src/lib/decorators/debug.decorator'; +import { Trace } from '../../src/lib/decorators/trace.decorator'; +import { Info } from '../../src/lib/decorators/info.decorator'; +import { Error } from '../../src/lib/decorators/error.decorator'; +import { Warn } from '../../src/lib/decorators/warn.decorator'; +import { Log } from '../../src/lib/decorators/log.decorator'; +import { Group } from '../../src/lib/decorators/groups/group.decorator'; +import { GroupCollapsed } from '../../src/lib/decorators/groups/group-collapsed.decorator'; +import { LoggerLevel } from '../../src/lib/logger.config'; import { LogFn } from '@angular-ru/logger'; @Component({