From b7b334d8c71077bd4a84c05e5c3ac038a521764d Mon Sep 17 00:00:00 2001 From: "e.zbarskaya" Date: Fri, 24 May 2019 15:34:42 +0300 Subject: [PATCH 1/2] merge into master github --- .travis.yml | 13 +++ README.md | 61 ++++++++++-- package.json | 122 ++++++++++++----------- projects/logger/tests/css-parcer.spec.ts | 9 +- 4 files changed, 133 insertions(+), 72 deletions(-) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..16056bc --- /dev/null +++ b/.travis.yml @@ -0,0 +1,13 @@ + +language: node_js +sudo: false +node_js: + - "8.10" +install: + - npm install +script: + - npm run lint + - npm test + - npm run build +after_success: + - npm run coverage diff --git a/README.md b/README.md index 7017720..5061442 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,23 @@ -# NgxLogger +# Angular Logger > Lightweight and configurable Angular logger + [![Build Status](https://travis-ci.org/Angular-RU/angular-logger.svg?branch=master)](https://travis-ci.org/Angular-RU/angular-logger) [![npm version](https://badge.fury.io/js/%40angular-ru%2Flogger.svg)](https://badge.fury.io/js/%40angular-ru%2Flogger) [![Coverage Status](https://coveralls.io/repos/github/Angular-RU/angular-logger/badge.svg?branch=develop)](https://coveralls.io/github/Angular-RU/angular-logger?branch=develop) [![npm-stat](https://img.shields.io/npm/dt/@Angular-RU/logger.svg)](https://npm-stat.com/charts.html?package=%40Angular-RU%2Flogger&from=2017-01-12) + + ```typescript +import { LoggerModule } from '@angular-ru/logger'; +... + +@NgModule({ + imports: [ + LoggerModule.forRoot() + ], + ... +}) +export class AppModule {} +``` + + ## Motivation This logger is a handy tool that can be useful in the design and development of the enterprise application level. Easy @@ -10,7 +26,7 @@ setting of logging levels and convenient work with groups. Among other things, y ## Table of contents * [Logging](#) - - [Basic usage API `trace`, `debug`, `info`, `warn`. `error`](#example-basic-methods) + - [Basic usage API `trace`, `debug`, `info`, `warn`, `error`](#example-basic-methods) - [Groups, `groupCollapsed`, `collapsible`](#example-groups) - [Nested groups (usage pipe method)](#example-nested-groups) - [Set logging level (worked in single or groups)](#example-set-minimal-logging-level) @@ -19,7 +35,7 @@ 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) - - [Configuration `NgxLogger`](#example-full-configurations) + - [Configuration `Angular Logger`](#example-full-configurations) - [Todo](#todo) ## Logging @@ -219,7 +235,7 @@ export class AppComponent implements OnInit { - **Logger level groups (pretty usage API):** ```typescript -import { LoggerService } from '@angular-ru/logger'; +import { LoggerService, LoggerLevel } from '@angular-ru/logger'; export class AppComponent implements OnInit { private readonly traceIsWork: string = 'trace is worked'; @@ -303,9 +319,7 @@ export class AppComponent implements OnInit { this.logger.clear(); this.logger.css('text-transform: uppercase; font-weight: bold').debug('window current ', window); - this.logger.css('color: red; text-decoration: underline; font-weight: bold').info('It is awesome logger'); - this.logger.debug({ a: 1 }); this.logger.warn(setStyle); @@ -327,7 +341,7 @@ export class AppComponent implements OnInit { public ngOnInit(): void { this.logger.clear(); - this.logger.css('font-weight: normal; text-decoration: none; font-style: italic;').info(3.14); + this.logger.css('font-weight: normal; text-decoration: none; font-style: italic').info(3.14); this.logger.css('font-weight: normal;').info(3.14); this.logger.warn('global format with style!'); } @@ -338,6 +352,29 @@ export class AppComponent implements OnInit { ### Example: CSS classes +```typescript +import { LoggerModule } from '@angular-ru/logger'; + +@NgModule({ + // .. + imports: [ + LoggerModule.forRoot({ + cssClassMap: { + bold: 'font-weight: bold', + 'line-through': 'text-decoration: line-through', + 'code-sandbox': ` + color: #666; + background: #f4f4f4; + border-left: 3px solid #f36d33; + font-family: monospace; + font-size: 15px;` + } + }) + ] + // .. +}) +``` + ```typescript import { LoggerService } from '@angular-ru/logger'; @@ -354,7 +391,9 @@ export class AppComponent implements OnInit { this.logger.cssClass('bold line-through').debug('JavaScript sucks', 'JavaScript is the best'); } } +export class AppModule {} ``` + ![](https://habrastorage.org/webt/d5/tm/aa/d5tmaaomjql5px_wkzxnodhacnk.png) @@ -398,7 +437,7 @@ export class AppComponent implements OnInit { ### Example: full configurations -```ts +```typescript import { LoggerModule } from '@angular-ru/logger'; @NgModule({ @@ -438,7 +477,7 @@ import { LoggerModule } from '@angular-ru/logger'; export class AppModule {} ``` -```ts +```typescript import { LoggerService } from '@angular-ru/logger'; export class AppComponent implements OnInit { @@ -482,3 +521,7 @@ export class AppComponent implements OnInit { - [ ] Timers (decorator) - [ ] Pre process output - [ ] Format output console + +## Authors + +[Eleonora Zbarskaya](https://github.com/kingofferelden), [Ivanov Maxim](https://github.com/splincode) diff --git a/package.json b/package.json index 5cc4f49..441ec1e 100644 --- a/package.json +++ b/package.json @@ -1,62 +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\"" - }, - "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", - "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/tests/css-parcer.spec.ts b/projects/logger/tests/css-parcer.spec.ts index ce9b4b4..a033ba0 100644 --- a/projects/logger/tests/css-parcer.spec.ts +++ b/projects/logger/tests/css-parcer.spec.ts @@ -8,6 +8,8 @@ describe('[TEST]: Check style', () => { let logger: LoggerService; const fakeConsole: Console & ConsoleFake = new ConsoleFake(); + const testString: string = 'test string'; + beforeAll(() => { TestBed.configureTestingModule({ imports: [ @@ -81,7 +83,7 @@ describe('[TEST]: Check style', () => { }); it('should work with empty cssClass', () => { - logger.cssClass('').debug('test string'); + logger.cssClass('').debug(testString); expect(logger.getCurrentLineStyle()).toEqual(''); }); @@ -90,6 +92,7 @@ describe('[TEST]: Check style', () => { describe('[TEST]: Check global styles', () => { let logger: LoggerService; const fakeConsole: Console & ConsoleFake = new ConsoleFake(); + const testString: string = 'test string'; beforeAll(() => { TestBed.configureTestingModule({ @@ -107,14 +110,14 @@ describe('[TEST]: Check global styles', () => { beforeEach(() => logger.clear()); it('should use global styles', () => { - logger.log('test string'); + logger.log(testString); expect(fakeConsole.stack()).toEqual( '[{"log":["%c%s","color: violet; font-weight: bold; font-size: 12px;","test string"]}]' ); }); it('should use global styles and work with empty css', () => { - logger.css('').log('test string'); + logger.css('').log(testString); expect(fakeConsole.stack()).toEqual( '[{"log":["%c%s","color: violet; font-weight: bold; font-size: 12px;","test string"]}]' ); From 4eb14b253d1379d2c907f8c78e55ea4d298377af Mon Sep 17 00:00:00 2001 From: "e.zbarskaya" Date: Fri, 24 May 2019 16:36:55 +0300 Subject: [PATCH 2/2] chore: update package json --- package.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/package.json b/package.json index 441ec1e..cc9f337 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,10 @@ "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" }, + "homepage": "https://github.com/Angular-RU/angular-logger", + "license": "MIT", "private": true, + "repository": "https://github.com/Angular-RU/angular-logger", "dependencies": { "@angular/animations": "~7.2.0", "@angular/common": "~7.2.0",