From 255d276d30877be339c251bed3a99dd17fe93554 Mon Sep 17 00:00:00 2001 From: "e.zbarskaya" Date: Mon, 3 Jun 2019 10:28:55 +0300 Subject: [PATCH 01/11] refactor: fix types after sonar --- README.md | 2 +- helpers/console-fake.ts | 2 +- .../src/lib/decorators/debug.decorator.ts | 3 +- .../src/lib/decorators/error.decorator.ts | 3 +- .../groups/group-collapsed.decorator.ts | 5 +- .../src/lib/decorators/groups/group.common.ts | 7 +- .../lib/decorators/groups/group.decorator.ts | 7 +- .../src/lib/decorators/info.decorator.ts | 3 +- .../src/lib/decorators/log.decorator.ts | 3 +- .../src/lib/decorators/logger.decorator.ts | 3 +- .../src/lib/decorators/timer.decorator.ts | 5 +- .../src/lib/decorators/trace.decorator.ts | 3 +- .../src/lib/decorators/warn.decorator.ts | 3 +- projects/logger/src/lib/logger.interfaces.ts | 14 +- projects/logger/src/lib/logger.service.ts | 4 +- .../lib/services/clipboard-factory.service.ts | 2 +- .../src/lib/services/console.service.ts | 18 +- .../src/lib/services/css-factory.service.ts | 8 +- .../src/lib/services/factory.service.ts | 6 +- .../src/lib/services/group-factory.service.ts | 15 +- tslint.json | 376 +++++++++--------- 21 files changed, 254 insertions(+), 238 deletions(-) diff --git a/README.md b/README.md index 3f1f652..d705f52 100644 --- a/README.md +++ b/README.md @@ -551,7 +551,7 @@ export class AppComponent { this.log('test log'); } - @TimerLog('Advanced timer', LoggerLevel.ERROR, false) + @TimerLog('Advanced timer', LoggerLevel.WARN, false) public showExample(): void { this.logger.clear(); this.log('Advanced test log'); diff --git a/helpers/console-fake.ts b/helpers/console-fake.ts index 685ade4..0b73ab8 100644 --- a/helpers/console-fake.ts +++ b/helpers/console-fake.ts @@ -86,7 +86,7 @@ export class ConsoleFake implements Console { const stackObject: ObjectKeyMap = JSON.parse(stack); const stackList: string[] = []; - stackObject.forEach((line: any) => { + stackObject.forEach((line: string[]) => { for (const levelLog in line) { if (line.hasOwnProperty(levelLog)) { stackList.push(line[levelLog]); diff --git a/projects/logger/src/lib/decorators/debug.decorator.ts b/projects/logger/src/lib/decorators/debug.decorator.ts index 6c53db8..e8d00de 100644 --- a/projects/logger/src/lib/decorators/debug.decorator.ts +++ b/projects/logger/src/lib/decorators/debug.decorator.ts @@ -1,8 +1,9 @@ import { LogFn } from './../logger.interfaces'; import { LoggerModule } from './../logger.module'; +import { Type } from '@angular/core'; export function DebugLog(): PropertyDecorator { - return (target: any, propertyName: string): void => { + return (target: Type, propertyName: string): void => { Object.defineProperty(target, propertyName, { configurable: false, get(): LogFn { diff --git a/projects/logger/src/lib/decorators/error.decorator.ts b/projects/logger/src/lib/decorators/error.decorator.ts index 6011a6a..e85d21f 100644 --- a/projects/logger/src/lib/decorators/error.decorator.ts +++ b/projects/logger/src/lib/decorators/error.decorator.ts @@ -1,8 +1,9 @@ +import { Type } from '@angular/core'; import { LogFn } from './../logger.interfaces'; import { LoggerModule } from './../logger.module'; export function ErrorLog(): PropertyDecorator { - return (target: any, propertyName: string): void => { + return (target: Type, propertyName: string): void => { Object.defineProperty(target, propertyName, { configurable: false, get(): LogFn { diff --git a/projects/logger/src/lib/decorators/groups/group-collapsed.decorator.ts b/projects/logger/src/lib/decorators/groups/group-collapsed.decorator.ts index 1b26713..edd6f53 100644 --- a/projects/logger/src/lib/decorators/groups/group-collapsed.decorator.ts +++ b/projects/logger/src/lib/decorators/groups/group-collapsed.decorator.ts @@ -1,12 +1,13 @@ import { GroupLevel, LoggerLevel } from '../../logger.config'; import { groupDecoratorFactory } from './group.common'; import { Callback } from '../../logger.interfaces'; +import { Type } from '@angular/core'; export function GroupCollapsed(title: string | Callback, level: LoggerLevel = LoggerLevel.INFO): any { - return (_target: any, _key: string, descriptor: PropertyDescriptor): PropertyDescriptor => { + return (_target: Type, _key: string, descriptor: PropertyDescriptor): PropertyDescriptor => { const method: Callback = descriptor.value; - descriptor.value = function(...args: any[]): any { + descriptor.value = function(...args: any[]): unknown { return groupDecoratorFactory(level, GroupLevel.GROUP_COLLAPSED, method, title, args, this); }; diff --git a/projects/logger/src/lib/decorators/groups/group.common.ts b/projects/logger/src/lib/decorators/groups/group.common.ts index cd45be5..c1a26d7 100644 --- a/projects/logger/src/lib/decorators/groups/group.common.ts +++ b/projects/logger/src/lib/decorators/groups/group.common.ts @@ -4,6 +4,7 @@ import { LoggerLevel, GroupLevel } from '../../logger.config'; import { Callback, GroupMethod } from '../../logger.interfaces'; import { GroupFactory } from '../../services/group-factory.service'; +import { Type } from '@angular/core'; export function groupDecoratorFactory( level: LoggerLevel, @@ -11,9 +12,9 @@ export function groupDecoratorFactory( method: any, title: string | Callback, args: any[], - target: any -): any { - let result: any; + target: Type +): unknown { + let result: unknown; const logger: LoggerService = LoggerModule.logger; const groupFactory: GroupFactory = LoggerModule.groupFactory; const groupMethod: GroupMethod = groupFactory[groupType].bind(groupFactory); diff --git a/projects/logger/src/lib/decorators/groups/group.decorator.ts b/projects/logger/src/lib/decorators/groups/group.decorator.ts index fff789f..b7fd0dc 100644 --- a/projects/logger/src/lib/decorators/groups/group.decorator.ts +++ b/projects/logger/src/lib/decorators/groups/group.decorator.ts @@ -1,12 +1,13 @@ import { GroupLevel, LoggerLevel } from '../../logger.config'; import { groupDecoratorFactory } from './group.common'; import { Callback } from '../../logger.interfaces'; +import { Type } from '@angular/core'; export function Group(title: string | Callback, level: LoggerLevel = LoggerLevel.INFO): any { - return (_target: any, _key: string, descriptor: PropertyDescriptor): PropertyDescriptor => { - const method: any = descriptor.value; + return (_target: Type, _key: string, descriptor: PropertyDescriptor): PropertyDescriptor => { + const method: Callback = descriptor.value; - descriptor.value = function(...args: any[]): any { + descriptor.value = function(...args: any[]): unknown { return groupDecoratorFactory(level, GroupLevel.GROUP, method, title, args, this); }; diff --git a/projects/logger/src/lib/decorators/info.decorator.ts b/projects/logger/src/lib/decorators/info.decorator.ts index fd83ac7..b7e4e76 100644 --- a/projects/logger/src/lib/decorators/info.decorator.ts +++ b/projects/logger/src/lib/decorators/info.decorator.ts @@ -1,8 +1,9 @@ import { LogFn } from './../logger.interfaces'; import { LoggerModule } from './../logger.module'; +import { Type } from '@angular/core'; export function InfoLog(): PropertyDecorator { - return (target: any, propertyName: string): void => { + return (target: Type, propertyName: string): void => { Object.defineProperty(target, propertyName, { configurable: false, get(): LogFn { diff --git a/projects/logger/src/lib/decorators/log.decorator.ts b/projects/logger/src/lib/decorators/log.decorator.ts index 9a41bee..6888028 100644 --- a/projects/logger/src/lib/decorators/log.decorator.ts +++ b/projects/logger/src/lib/decorators/log.decorator.ts @@ -1,8 +1,9 @@ import { LogFn } from './../logger.interfaces'; import { LoggerModule } from './../logger.module'; +import { Type } from '@angular/core'; export function Log(): PropertyDecorator { - return (target: any, propertyName: string): void => { + return (target: Type, propertyName: string): void => { Object.defineProperty(target, propertyName, { configurable: false, get(): LogFn { diff --git a/projects/logger/src/lib/decorators/logger.decorator.ts b/projects/logger/src/lib/decorators/logger.decorator.ts index 8a31b59..75a1dac 100644 --- a/projects/logger/src/lib/decorators/logger.decorator.ts +++ b/projects/logger/src/lib/decorators/logger.decorator.ts @@ -1,8 +1,9 @@ import { LoggerModule } from '../logger.module'; import { LoggerService } from '../logger.service'; +import { Type } from '@angular/core'; export function Logger(): PropertyDecorator { - return (target: any, propertyName: string): void => { + return (target: Type, propertyName: string): void => { Object.defineProperty(target, propertyName, { configurable: false, get(): LoggerService { diff --git a/projects/logger/src/lib/decorators/timer.decorator.ts b/projects/logger/src/lib/decorators/timer.decorator.ts index 3904af8..3cbb71b 100644 --- a/projects/logger/src/lib/decorators/timer.decorator.ts +++ b/projects/logger/src/lib/decorators/timer.decorator.ts @@ -1,10 +1,11 @@ import { LoggerLevel } from '../logger.config'; import { Fn, TimerInfo, TimerLevels } from '../logger.interfaces'; import { LoggerModule } from '../logger.module'; +import { Type } from '@angular/core'; export function TimerLog(title: string, level: TimerLevels = LoggerLevel.DEBUG, isMillisecond: boolean = true): any { - return (_target: any, _key: string, descriptor: PropertyDescriptor): PropertyDescriptor => { - let result: any; + return (_target: Type, _key: string, descriptor: PropertyDescriptor): PropertyDescriptor => { + let result: PropertyDescriptor; const method: Fn = descriptor.value; descriptor.value = function(...args: any[]): PropertyDescriptor { const info: TimerInfo | null = LoggerModule.logger.startTime(title, level); diff --git a/projects/logger/src/lib/decorators/trace.decorator.ts b/projects/logger/src/lib/decorators/trace.decorator.ts index 79e870f..9bdde50 100644 --- a/projects/logger/src/lib/decorators/trace.decorator.ts +++ b/projects/logger/src/lib/decorators/trace.decorator.ts @@ -1,8 +1,9 @@ import { LogFn } from './../logger.interfaces'; import { LoggerModule } from './../logger.module'; +import { Type } from '@angular/core'; export function TraceLog(): PropertyDecorator { - return (target: any, propertyName: string): void => { + return (target: Type, propertyName: string): void => { Object.defineProperty(target, propertyName, { configurable: false, get(): LogFn { diff --git a/projects/logger/src/lib/decorators/warn.decorator.ts b/projects/logger/src/lib/decorators/warn.decorator.ts index aba80fd..05d21d3 100644 --- a/projects/logger/src/lib/decorators/warn.decorator.ts +++ b/projects/logger/src/lib/decorators/warn.decorator.ts @@ -1,8 +1,9 @@ import { LogFn } from './../logger.interfaces'; import { LoggerModule } from './../logger.module'; +import { Type } from '@angular/core'; export function WarnLog(): PropertyDecorator { - return (target: any, propertyName: string): void => { + return (target: Type, propertyName: string): void => { Object.defineProperty(target, propertyName, { configurable: false, get(): LogFn { diff --git a/projects/logger/src/lib/logger.interfaces.ts b/projects/logger/src/lib/logger.interfaces.ts index e859bdf..cd453ab 100644 --- a/projects/logger/src/lib/logger.interfaces.ts +++ b/projects/logger/src/lib/logger.interfaces.ts @@ -2,9 +2,9 @@ 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) => T; -export type Fn = (...args: T[]) => U; +export type Fn = (...args: T[]) => U; export interface GroupMethods extends Function { group(label: string, pipeline?: Pipeline): LoggerService; @@ -17,20 +17,20 @@ export interface TimerInfo { startTime: number; } -export type ConsoleOperation = (message?: T, ...optionalParams: P[]) => void; +export type ConsoleOperation = (message?: T, ...optionalParams: P[]) => void; export type PipeOperation = GroupMethods | ConsoleOperation; -export type GroupMethod = (groupTitle?: string, ...optionalParams: T[]) => any; +export type GroupMethod = (groupTitle?: string, ...optionalParams: T[]) => unknown; export type GroupFactoryMethod = (title: string, pipeline: Pipeline, logger: LoggerService, level: LoggerLevel) => void; export type LogFn = GroupMethods & ConsoleOperation; -export type Arguments = T[]; +export type Arguments = T[]; export interface ObjectKeyMap { [key: string]: T; } -export type Callback = (...args: any[]) => T; +export type Callback = (...args: T[]) => T; -export type Descriptor = PropertyDescriptor & ThisType; +export type Descriptor = PropertyDescriptor & ThisType; export interface LoggerOptions { instance: Console; diff --git a/projects/logger/src/lib/logger.service.ts b/projects/logger/src/lib/logger.service.ts index 4cb40a5..b105c3f 100644 --- a/projects/logger/src/lib/logger.service.ts +++ b/projects/logger/src/lib/logger.service.ts @@ -66,7 +66,7 @@ export class LoggerService { this.console.minLevel = level; } - public getCurrentLineStyle(): any { + public getCurrentLineStyle(): string { return this.cssFactory.style; } @@ -124,7 +124,7 @@ export class LoggerService { return this; } - public copy(example: any): boolean { + public copy(example: unknown): boolean { return this.clipboard.copyOnBuffer(example); } diff --git a/projects/logger/src/lib/services/clipboard-factory.service.ts b/projects/logger/src/lib/services/clipboard-factory.service.ts index 42ab482..680c1fa 100644 --- a/projects/logger/src/lib/services/clipboard-factory.service.ts +++ b/projects/logger/src/lib/services/clipboard-factory.service.ts @@ -13,7 +13,7 @@ export class ClipboardFactory implements Clipboard { return document.queryCommandSupported && document.queryCommandSupported('copy'); } - public copyOnBuffer(data: any): boolean { + public copyOnBuffer(data: unknown): boolean { const text: string = typeof data !== 'string' ? JSON.stringify(data, null, this.DEFAULT_DEPTH) : data; let isExec: boolean = false; diff --git a/projects/logger/src/lib/services/console.service.ts b/projects/logger/src/lib/services/console.service.ts index f0eb326..e34e4b9 100644 --- a/projects/logger/src/lib/services/console.service.ts +++ b/projects/logger/src/lib/services/console.service.ts @@ -1,5 +1,5 @@ import { Inject, Injectable } from '@angular/core'; -import { LoggerLevel } from '../logger.config'; +import { COLORS, LABELS, LoggerLevel } from '../logger.config'; import { CONSOLE_API, ConsoleOperation, @@ -17,19 +17,23 @@ export class ConsoleService implements ConsoleServiceInterface { constructor( @Inject(MIN_LEVEL) public readonly level: LoggerLevel, @Inject(CONSOLE_API) public readonly consoleApi: any, - @Inject(LABEL_NAMES) public labelNames: any, - @Inject(LABEL_COLORS) public labelColors: any + @Inject(LABEL_NAMES) public labelNames: LABELS[], + @Inject(LABEL_COLORS) public labelColors: COLORS[] ) { this.minLevel = level; this.instance = consoleApi; } + public get console(): Console { + return this.instance; + } + public set console(instance: Console) { this.instance = instance; } - public get console(): Console { - return this.instance; + public get noop(): ConsoleOperation { + return ((): void => {}) as ConsoleOperation; } public getTemplateLabel(level: LoggerLevel): string { @@ -43,8 +47,4 @@ export class ConsoleService implements ConsoleServiceInterface { public getTemplateWithoutLabel(): string { return `%c%s`; } - - public get noop(): ConsoleOperation { - return ((): void => {}) as ConsoleOperation; - } } diff --git a/projects/logger/src/lib/services/css-factory.service.ts b/projects/logger/src/lib/services/css-factory.service.ts index 970c080..0a931ab 100644 --- a/projects/logger/src/lib/services/css-factory.service.ts +++ b/projects/logger/src/lib/services/css-factory.service.ts @@ -1,6 +1,6 @@ import { Inject, Injectable } from '@angular/core'; -import { CSS_CLASS_MAP, LABEL_COLORS, LINE_STYLE } from '../logger.interfaces'; -import { LoggerLevel } from '../logger.config'; +import { CSS_CLASS_MAP, LABEL_COLORS, LINE_STYLE, ObjectKeyMap } from '../logger.interfaces'; +import { COLORS, LoggerLevel } from '../logger.config'; @Injectable() export class CssFactory { @@ -8,8 +8,8 @@ export class CssFactory { constructor( @Inject(LINE_STYLE) public readonly globalLineStyle: string, - @Inject(LABEL_COLORS) public readonly labelColors: any, - @Inject(CSS_CLASS_MAP) public readonly cssClassMap: any + @Inject(LABEL_COLORS) public readonly labelColors: COLORS[], + @Inject(CSS_CLASS_MAP) public readonly cssClassMap: ObjectKeyMap ) {} public get style(): string { diff --git a/projects/logger/src/lib/services/factory.service.ts b/projects/logger/src/lib/services/factory.service.ts index 0b08f64..7f51d2b 100644 --- a/projects/logger/src/lib/services/factory.service.ts +++ b/projects/logger/src/lib/services/factory.service.ts @@ -17,7 +17,7 @@ import { LoggerService } from '../logger.service'; @Injectable() export class LoggerFactory { constructor( - @Inject(USE_LEVEL_GROUP) private readonly useLevelGroup: any, + @Inject(USE_LEVEL_GROUP) private readonly useLevelGroup: string, private readonly console: ConsoleService, private readonly cssFactory: CssFactory, private readonly groupFactory: GroupFactory @@ -25,7 +25,7 @@ export class LoggerFactory { public createLogger(level: LoggerLevel, logger: LoggerService): T { const args: Arguments = this.getArgumentsByType(level); - const method: string = DEFAULT_METHODS[level]; + const method: any = DEFAULT_METHODS[level]; const operation: Operation = this.console.minLevel <= level ? this.console.instance[method].bind(...args) : this.console.noop; @@ -34,7 +34,7 @@ export class LoggerFactory { ? this.defineLevelGroups(level, operation, logger) : operation; - return (pipeOperation as any) as T; + return (pipeOperation as unknown) as T; } private defineLevelGroups(level: LoggerLevel, operation: Operation, logger: LoggerService): Operation { diff --git a/projects/logger/src/lib/services/group-factory.service.ts b/projects/logger/src/lib/services/group-factory.service.ts index 0618e00..a725373 100644 --- a/projects/logger/src/lib/services/group-factory.service.ts +++ b/projects/logger/src/lib/services/group-factory.service.ts @@ -2,7 +2,7 @@ import { Inject, Injectable } from '@angular/core'; import { ConsoleService } from './console.service'; import { GroupMethod, LABEL_NAMES, Pipeline } from '../logger.interfaces'; import { LoggerService } from '../logger.service'; -import { LoggerLevel } from '../logger.config'; +import { LABELS, LoggerLevel } from '../logger.config'; import { CssFactory } from './css-factory.service'; @Injectable() @@ -11,7 +11,7 @@ export class GroupFactory { private counterOpenedGroup: number = 0; constructor( - @Inject(LABEL_NAMES) public labelNames: any, + @Inject(LABEL_NAMES) public labelNames: LABELS[], private readonly console: ConsoleService, private readonly cssFactory: CssFactory ) {} @@ -29,17 +29,22 @@ export class GroupFactory { } } - public group(title: string, pipeline: Pipeline, logger: LoggerService, level: LoggerLevel): T { + public group(title: string, pipeline: Pipeline, logger: LoggerService, level: LoggerLevel): T { const group: GroupMethod = this.console.instance.group.bind(this.console.instance); 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 + ): T { const groupCollapsed: GroupMethod = this.console.instance.groupCollapsed.bind(this.console.instance); return this.createGroupLogger(groupCollapsed, title, pipeline, logger, level); } - private createGroupLogger( + private createGroupLogger( groupType: GroupMethod, title: string, pipeline: Pipeline, diff --git a/tslint.json b/tslint.json index fcfa982..b2a1b62 100644 --- a/tslint.json +++ b/tslint.json @@ -1,190 +1,190 @@ { - "extends": ["codelyzer", "tslint-sonarts", "tslint-eslint-rules", "tslint:recommended"], - "rulesDirectory": ["node_modules/codelyzer"], - "rules": { - "arguments-order": false, - "prefer-readonly": true, - "typedef": [ - true, - "call-signature", - "arrow-call-signature", - "parameter", - "arrow-parameter", - "property-declaration", - "variable-declaration", - "member-variable-declaration", - "object-destructuring", - "array-destructuring" - ], - "no-inferrable-types": false, - "max-line-length": [ - true, - { - "limit": 120, - "ignore-pattern": "^} |^import |^export {(.*?)} |^(.*?)(@tinkoff)(.*)$" - } - ], - "no-duplicate-variable": true, - "no-bitwise": false, - "encoding": true, - "no-var-requires": false, - "object-curly-spacing": [true, "always"], - "prefer-object-spread": true, - "object-literal-shorthand": true, - "object-literal-key-quotes": [true, "as-needed"], - "no-default-export": true, - "no-require-imports": false, - "no-duplicate-imports": true, - "prefer-for-of": false, - "trailing-comma": [ - true, - { - "multiline": "never", - "singleline": "never", - "esSpecCompliant": true - } - ], - "interface-name": [false, "always-prefix"], - "arrow-return-shorthand": true, - "callable-types": true, - "class-name": true, - "comment-format": [true, "check-space"], - "jsdoc-format": [true, "check-multiline-start"], - "curly": true, - "eofline": true, - "forin": true, - "import-blacklist": [ - true, - "rxjs/Rx", - "rxjs/Rx", - "rxjs/Observable", - "rxjs/Observer", - "rxjs/Subject", - "rxjs/observable/defer", - "rxjs/observable/merge", - "rxjs/observable/of", - "rxjs/observable/timer", - "rxjs/observable/combineLatest", - "rxjs/add/observable/combineLatest", - "rxjs/add/observable/of", - "rxjs/add/observable/merge", - "rxjs/add/operator/debounceTime", - "rxjs/add/operator/distinctUntilChanged", - "rxjs/add/operator/do", - "rxjs/add/operator/filter", - "rxjs/add/operator/map", - "rxjs/add/operator/retry", - "rxjs/add/operator/startWith", - "rxjs/add/operator/switchMap", - "rxjs/observable/interval", - "rxjs/observable/forkJoin", - "rxjs/internal/operators" - ], - "import-spacing": true, - "import-destructuring-spacing": true, - "indent": [true, "spaces", 4], - "interface-over-type-literal": true, - "only-arrow-functions": false, - "label-position": true, - "max-classes-per-file": false, - "member-access": true, - "ordered-imports": false, - "member-ordering": [ - true, - { - "order": [ - { - "name": "static non-private", - "kinds": ["public-static-field", "protected-static-field"] - }, - "constructor" - ] - } - ], - "no-arg": true, - "no-console": [true, "log", "debug", "info", "time", "timeEnd", "trace"], - "no-construct": true, - "no-debugger": true, - "no-duplicate-super": true, - "no-empty": false, - "no-empty-interface": true, - "no-eval": true, - "no-sparse-arrays": true, - "no-misused-new": true, - "no-non-null-assertion": true, - "no-shadowed-variable": true, - "no-string-literal": false, - "no-string-throw": true, - "no-switch-case-fall-through": true, - "no-trailing-whitespace": true, - "no-unnecessary-initializer": true, - "no-unused-expression": [true, "allow-fast-null-checks"], - "no-use-before-declare": true, - "no-var-keyword": true, - "object-literal-sort-keys": false, - "space-before-function-paren": [ - true, - { - "named": "never", - "asyncArrow": "always", - "method": "never", - "constructor": "never" - } - ], - "one-line": [true, "check-open-brace", "check-catch", "check-else", "check-whitespace"], - "prefer-const": true, - "quotemark": [true, "single"], - "radix": false, - "semicolon": [true, "always", "strict-bound-class-methods"], - "triple-equals": [true, "allow-null-check"], - "typedef-whitespace": [ - true, - { - "call-signature": "nospace", - "index-signature": "nospace", - "parameter": "nospace", - "property-declaration": "nospace", - "variable-declaration": "nospace" - }, - { - "call-signature": "onespace", - "index-signature": "onespace", - "parameter": "onespace", - "property-declaration": "onespace", - "variable-declaration": "onespace" - } - ], - "unified-signatures": true, - "variable-name": false, - "whitespace": [ - true, - "check-branch", - "check-decl", - "check-operator", - "check-module", - "check-separator", - "check-rest-spread", - "check-type", - "check-typecast", - "check-type-operator", - "check-preblock" - ], - "use-input-property-decorator": true, - "use-output-property-decorator": true, - "use-host-property-decorator": true, - "no-input-rename": false, - "no-output-rename": false, - "use-pipe-transform-interface": true, - "component-class-suffix": false, - "directive-class-suffix": false, - "enforce-component-selector": true, - "max-inline-declarations": true, - "no-unused-css": true, - "template-cyclomatic-complexity": [false, 5], - "template-conditional-complexity": [true, 4], - "templates-no-negated-async": true, - "contextual-life-cycle": true, - "use-life-cycle-interface": true, - "angular-whitespace": [true, "check-interpolation", "check-semicolon"] - } + "extends": ["codelyzer", "tslint-sonarts", "tslint-eslint-rules", "tslint:recommended"], + "rulesDirectory": ["node_modules/codelyzer"], + "rules": { + "arguments-order": false, + "prefer-readonly": true, + "typedef": [ + true, + "call-signature", + "arrow-call-signature", + "parameter", + "arrow-parameter", + "property-declaration", + "variable-declaration", + "member-variable-declaration", + "object-destructuring", + "array-destructuring" + ], + "no-inferrable-types": false, + "max-line-length": [ + true, + { + "limit": 120, + "ignore-pattern": "^} |^import |^export {(.*?)} |^(.*?)(@tinkoff)(.*)$" + } + ], + "no-duplicate-variable": true, + "no-bitwise": false, + "encoding": true, + "no-var-requires": false, + "object-curly-spacing": [true, "always"], + "prefer-object-spread": true, + "object-literal-shorthand": true, + "object-literal-key-quotes": [true, "as-needed"], + "no-default-export": true, + "no-require-imports": false, + "no-duplicate-imports": true, + "prefer-for-of": false, + "trailing-comma": [ + true, + { + "multiline": "never", + "singleline": "never", + "esSpecCompliant": true + } + ], + "interface-name": [false, "always-prefix"], + "arrow-return-shorthand": true, + "callable-types": true, + "class-name": true, + "comment-format": [true, "check-space"], + "jsdoc-format": [true, "check-multiline-start"], + "curly": true, + "eofline": true, + "forin": true, + "import-blacklist": [ + true, + "rxjs/Rx", + "rxjs/Rx", + "rxjs/Observable", + "rxjs/Observer", + "rxjs/Subject", + "rxjs/observable/defer", + "rxjs/observable/merge", + "rxjs/observable/of", + "rxjs/observable/timer", + "rxjs/observable/combineLatest", + "rxjs/add/observable/combineLatest", + "rxjs/add/observable/of", + "rxjs/add/observable/merge", + "rxjs/add/operator/debounceTime", + "rxjs/add/operator/distinctUntilChanged", + "rxjs/add/operator/do", + "rxjs/add/operator/filter", + "rxjs/add/operator/map", + "rxjs/add/operator/retry", + "rxjs/add/operator/startWith", + "rxjs/add/operator/switchMap", + "rxjs/observable/interval", + "rxjs/observable/forkJoin", + "rxjs/internal/operators" + ], + "import-spacing": true, + "import-destructuring-spacing": true, + "indent": [true, "spaces", 4], + "interface-over-type-literal": true, + "only-arrow-functions": false, + "label-position": true, + "max-classes-per-file": false, + "member-access": true, + "ordered-imports": false, + "member-ordering": [ + true, + { + "order": [ + { + "name": "static non-private", + "kinds": ["public-static-field", "protected-static-field"] + }, + "constructor" + ] + } + ], + "no-arg": true, + "no-console": [true, "log", "debug", "info", "time", "timeEnd", "trace"], + "no-construct": true, + "no-debugger": true, + "no-duplicate-super": true, + "no-empty": false, + "no-empty-interface": true, + "no-eval": true, + "no-sparse-arrays": true, + "no-misused-new": true, + "no-non-null-assertion": true, + "no-shadowed-variable": true, + "no-string-literal": false, + "no-string-throw": true, + "no-switch-case-fall-through": true, + "no-trailing-whitespace": true, + "no-unnecessary-initializer": true, + "no-unused-expression": [true, "allow-fast-null-checks"], + "no-use-before-declare": true, + "no-var-keyword": true, + "object-literal-sort-keys": false, + "space-before-function-paren": [ + true, + { + "named": "never", + "asyncArrow": "always", + "method": "never", + "constructor": "never" + } + ], + "one-line": [true, "check-open-brace", "check-catch", "check-else", "check-whitespace"], + "prefer-const": true, + "quotemark": [true, "single"], + "radix": false, + "semicolon": [true, "always", "strict-bound-class-methods"], + "triple-equals": [true, "allow-null-check"], + "typedef-whitespace": [ + true, + { + "call-signature": "nospace", + "index-signature": "nospace", + "parameter": "nospace", + "property-declaration": "nospace", + "variable-declaration": "nospace" + }, + { + "call-signature": "onespace", + "index-signature": "onespace", + "parameter": "onespace", + "property-declaration": "onespace", + "variable-declaration": "onespace" + } + ], + "unified-signatures": true, + "variable-name": false, + "whitespace": [ + true, + "check-branch", + "check-decl", + "check-operator", + "check-module", + "check-separator", + "check-rest-spread", + "check-type", + "check-typecast", + "check-type-operator", + "check-preblock" + ], + "use-input-property-decorator": true, + "use-output-property-decorator": true, + "use-host-property-decorator": true, + "no-input-rename": false, + "no-output-rename": false, + "use-pipe-transform-interface": true, + "component-class-suffix": false, + "directive-class-suffix": false, + "enforce-component-selector": true, + "max-inline-declarations": true, + "no-unused-css": true, + "template-cyclomatic-complexity": [false, 5], + "template-conditional-complexity": [true, 4], + "templates-no-negated-async": true, + "contextual-life-cycle": true, + "use-life-cycle-interface": true, + "angular-whitespace": [true, "check-interpolation", "check-semicolon"] + } } From 1c9d77e7e38c9b3e76e5dc468624cc6a04da77d4 Mon Sep 17 00:00:00 2001 From: "e.zbarskaya" Date: Mon, 3 Jun 2019 12:28:19 +0300 Subject: [PATCH 02/11] refactor: fix types after sonar --- .../groups/group-collapsed.decorator.ts | 9 ++++++--- .../src/lib/decorators/groups/group.decorator.ts | 6 +++--- .../logger/src/lib/decorators/timer.decorator.ts | 10 +++++++--- projects/logger/src/lib/logger.interfaces.ts | 14 ++++++++++++-- .../src/lib/services/clipboard-factory.service.ts | 13 ++++++++++--- .../logger/src/lib/services/console.service.ts | 15 ++++++++------- .../logger/src/lib/services/factory.service.ts | 5 +++-- .../src/lib/services/json-factory.service.ts | 2 +- 8 files changed, 50 insertions(+), 24 deletions(-) diff --git a/projects/logger/src/lib/decorators/groups/group-collapsed.decorator.ts b/projects/logger/src/lib/decorators/groups/group-collapsed.decorator.ts index edd6f53..d3561f5 100644 --- a/projects/logger/src/lib/decorators/groups/group-collapsed.decorator.ts +++ b/projects/logger/src/lib/decorators/groups/group-collapsed.decorator.ts @@ -1,13 +1,16 @@ import { GroupLevel, LoggerLevel } from '../../logger.config'; import { groupDecoratorFactory } from './group.common'; -import { Callback } from '../../logger.interfaces'; +import { Any, Callback, DecoratorMethod } from '../../logger.interfaces'; import { Type } from '@angular/core'; -export function GroupCollapsed(title: string | Callback, level: LoggerLevel = LoggerLevel.INFO): any { +export function GroupCollapsed( + title: string | Callback, + level: LoggerLevel = LoggerLevel.INFO +): DecoratorMethod { return (_target: Type, _key: string, descriptor: PropertyDescriptor): PropertyDescriptor => { const method: Callback = descriptor.value; - descriptor.value = function(...args: any[]): unknown { + descriptor.value = function(...args: Any[]): unknown { return groupDecoratorFactory(level, GroupLevel.GROUP_COLLAPSED, method, title, args, this); }; diff --git a/projects/logger/src/lib/decorators/groups/group.decorator.ts b/projects/logger/src/lib/decorators/groups/group.decorator.ts index b7fd0dc..fdd3b8b 100644 --- a/projects/logger/src/lib/decorators/groups/group.decorator.ts +++ b/projects/logger/src/lib/decorators/groups/group.decorator.ts @@ -1,13 +1,13 @@ import { GroupLevel, LoggerLevel } from '../../logger.config'; import { groupDecoratorFactory } from './group.common'; -import { Callback } from '../../logger.interfaces'; +import { Any, Callback, DecoratorMethod } from '../../logger.interfaces'; import { Type } from '@angular/core'; -export function Group(title: string | Callback, level: LoggerLevel = LoggerLevel.INFO): any { +export function Group(title: string | Callback, level: LoggerLevel = LoggerLevel.INFO): DecoratorMethod { return (_target: Type, _key: string, descriptor: PropertyDescriptor): PropertyDescriptor => { const method: Callback = descriptor.value; - descriptor.value = function(...args: any[]): unknown { + descriptor.value = function(...args: Any[]): unknown { return groupDecoratorFactory(level, GroupLevel.GROUP, method, title, args, this); }; diff --git a/projects/logger/src/lib/decorators/timer.decorator.ts b/projects/logger/src/lib/decorators/timer.decorator.ts index 3cbb71b..04d3c90 100644 --- a/projects/logger/src/lib/decorators/timer.decorator.ts +++ b/projects/logger/src/lib/decorators/timer.decorator.ts @@ -1,13 +1,17 @@ import { LoggerLevel } from '../logger.config'; -import { Fn, TimerInfo, TimerLevels } from '../logger.interfaces'; +import { Any, DecoratorMethod, Fn, TimerInfo, TimerLevels } from '../logger.interfaces'; import { LoggerModule } from '../logger.module'; import { Type } from '@angular/core'; -export function TimerLog(title: string, level: TimerLevels = LoggerLevel.DEBUG, isMillisecond: boolean = true): any { +export function TimerLog( + title: string, + level: TimerLevels = LoggerLevel.DEBUG, + isMillisecond: boolean = true +): DecoratorMethod { return (_target: Type, _key: string, descriptor: PropertyDescriptor): PropertyDescriptor => { let result: PropertyDescriptor; const method: Fn = descriptor.value; - descriptor.value = function(...args: any[]): PropertyDescriptor { + descriptor.value = function(...args: Any[]): PropertyDescriptor { const info: TimerInfo | null = LoggerModule.logger.startTime(title, level); result = method.apply(this, args); LoggerModule.logger.endTime(info, level, isMillisecond); diff --git a/projects/logger/src/lib/logger.interfaces.ts b/projects/logger/src/lib/logger.interfaces.ts index cd453ab..f10b3ee 100644 --- a/projects/logger/src/lib/logger.interfaces.ts +++ b/projects/logger/src/lib/logger.interfaces.ts @@ -24,10 +24,18 @@ export type GroupFactoryMethod = (title: string, pipeline: Pipeline, logger: Log export type LogFn = GroupMethods & ConsoleOperation; export type Arguments = T[]; -export interface ObjectKeyMap { +export interface ObjectKeyMap { [key: string]: T; } +export type Any = any; // NOSONAR + +export type DecoratorMethod = (target: Any, key: string, descriptor: PropertyDescriptor) => PropertyDescriptor; + +export interface ClipboardData { + setData: (type: string, value: string) => void | boolean; +} + export type Callback = (...args: T[]) => T; export type Descriptor = PropertyDescriptor & ThisType; @@ -57,9 +65,11 @@ export interface ConsoleServiceInterface { } export interface Clipboard { - copyOnBuffer(data: unknown): boolean; readonly clipboardSetData: SetDataType; readonly queryCommandCopy: boolean; + + copyOnBuffer(data: unknown): boolean; + textAreaSelectData(value: string): boolean; } diff --git a/projects/logger/src/lib/services/clipboard-factory.service.ts b/projects/logger/src/lib/services/clipboard-factory.service.ts index 680c1fa..d0411cb 100644 --- a/projects/logger/src/lib/services/clipboard-factory.service.ts +++ b/projects/logger/src/lib/services/clipboard-factory.service.ts @@ -1,12 +1,19 @@ import { Injectable } from '@angular/core'; -import { Clipboard, SetDataType } from '../logger.interfaces'; +import { Clipboard, ClipboardData, SetDataType } from '../logger.interfaces'; + +declare global { + interface Window { + clipboardData: ClipboardData; + } +} +declare const window: Window; @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; + const clipboardData: ClipboardData = window.clipboardData; + return clipboardData && clipboardData.setData; } public get queryCommandCopy(): boolean { diff --git a/projects/logger/src/lib/services/console.service.ts b/projects/logger/src/lib/services/console.service.ts index e34e4b9..1f6a5eb 100644 --- a/projects/logger/src/lib/services/console.service.ts +++ b/projects/logger/src/lib/services/console.service.ts @@ -1,12 +1,13 @@ import { Inject, Injectable } from '@angular/core'; import { COLORS, LABELS, LoggerLevel } from '../logger.config'; import { - CONSOLE_API, - ConsoleOperation, - ConsoleServiceInterface, - LABEL_COLORS, - LABEL_NAMES, - MIN_LEVEL + Any, + CONSOLE_API, + ConsoleOperation, + ConsoleServiceInterface, + LABEL_COLORS, + LABEL_NAMES, + MIN_LEVEL } from '../logger.interfaces'; @Injectable() @@ -16,7 +17,7 @@ export class ConsoleService implements ConsoleServiceInterface { constructor( @Inject(MIN_LEVEL) public readonly level: LoggerLevel, - @Inject(CONSOLE_API) public readonly consoleApi: any, + @Inject(CONSOLE_API) public readonly consoleApi: Any, @Inject(LABEL_NAMES) public labelNames: LABELS[], @Inject(LABEL_COLORS) public labelColors: COLORS[] ) { diff --git a/projects/logger/src/lib/services/factory.service.ts b/projects/logger/src/lib/services/factory.service.ts index 7f51d2b..cc106bb 100644 --- a/projects/logger/src/lib/services/factory.service.ts +++ b/projects/logger/src/lib/services/factory.service.ts @@ -25,10 +25,10 @@ export class LoggerFactory { public createLogger(level: LoggerLevel, logger: LoggerService): T { const args: Arguments = this.getArgumentsByType(level); - const method: any = DEFAULT_METHODS[level]; + const methodName: string = DEFAULT_METHODS[level]; const operation: Operation = - this.console.minLevel <= level ? this.console.instance[method].bind(...args) : this.console.noop; + this.console.minLevel <= level ? this.console.instance[methodName].bind(...args) : this.console.noop; const pipeOperation: PipeOperation = this.useLevelGroup ? this.defineLevelGroups(level, operation, logger) @@ -40,6 +40,7 @@ export class LoggerFactory { private defineLevelGroups(level: LoggerLevel, operation: Operation, logger: LoggerService): Operation { const { GROUP, GROUP_COLLAPSED }: typeof GroupLevel = GroupLevel; + Object.defineProperties(operation, { [GROUP]: this.setGroupMethod(GROUP, level, logger), [GROUP_COLLAPSED]: this.setGroupMethod(GROUP_COLLAPSED, level, logger) diff --git a/projects/logger/src/lib/services/json-factory.service.ts b/projects/logger/src/lib/services/json-factory.service.ts index aaf2c26..4c509eb 100644 --- a/projects/logger/src/lib/services/json-factory.service.ts +++ b/projects/logger/src/lib/services/json-factory.service.ts @@ -12,7 +12,7 @@ export class JsonFactory { public colorsJSON(json: string): string[] { const arr: string[] = []; - json = json.replace(this.lexerTypeFinder, (match: any) => { + json = json.replace(this.lexerTypeFinder, (match: string) => { let style: string = this._number; if (/^"/.test(match)) { if (/:$/.test(match)) { From 4af4f8c39b92fa4bcf6149674165c786a55807a9 Mon Sep 17 00:00:00 2001 From: "e.zbarskaya" Date: Mon, 3 Jun 2019 12:28:57 +0300 Subject: [PATCH 03/11] refactor: fix types after sonar --- .../logger/src/lib/services/console.service.ts | 14 +++++++------- .../logger/src/lib/services/factory.service.ts | 1 - 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/projects/logger/src/lib/services/console.service.ts b/projects/logger/src/lib/services/console.service.ts index 1f6a5eb..20089ae 100644 --- a/projects/logger/src/lib/services/console.service.ts +++ b/projects/logger/src/lib/services/console.service.ts @@ -1,13 +1,13 @@ import { Inject, Injectable } from '@angular/core'; import { COLORS, LABELS, LoggerLevel } from '../logger.config'; import { - Any, - CONSOLE_API, - ConsoleOperation, - ConsoleServiceInterface, - LABEL_COLORS, - LABEL_NAMES, - MIN_LEVEL + Any, + CONSOLE_API, + ConsoleOperation, + ConsoleServiceInterface, + LABEL_COLORS, + LABEL_NAMES, + MIN_LEVEL } from '../logger.interfaces'; @Injectable() diff --git a/projects/logger/src/lib/services/factory.service.ts b/projects/logger/src/lib/services/factory.service.ts index cc106bb..551e62b 100644 --- a/projects/logger/src/lib/services/factory.service.ts +++ b/projects/logger/src/lib/services/factory.service.ts @@ -40,7 +40,6 @@ export class LoggerFactory { private defineLevelGroups(level: LoggerLevel, operation: Operation, logger: LoggerService): Operation { const { GROUP, GROUP_COLLAPSED }: typeof GroupLevel = GroupLevel; - Object.defineProperties(operation, { [GROUP]: this.setGroupMethod(GROUP, level, logger), [GROUP_COLLAPSED]: this.setGroupMethod(GROUP_COLLAPSED, level, logger) From f681dace9352d5ab246b023c2555d936312b779d Mon Sep 17 00:00:00 2001 From: "e.zbarskaya" Date: Mon, 3 Jun 2019 13:29:30 +0300 Subject: [PATCH 04/11] refactor: fix types after sonar --- projects/logger/src/lib/decorators/groups/group.common.ts | 6 +++--- projects/logger/src/lib/services/group-factory.service.ts | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/projects/logger/src/lib/decorators/groups/group.common.ts b/projects/logger/src/lib/decorators/groups/group.common.ts index c1a26d7..40a0d1a 100644 --- a/projects/logger/src/lib/decorators/groups/group.common.ts +++ b/projects/logger/src/lib/decorators/groups/group.common.ts @@ -1,7 +1,7 @@ import { LoggerModule } from '../../logger.module'; import { LoggerService } from '../../logger.service'; import { LoggerLevel, GroupLevel } from '../../logger.config'; -import { Callback, GroupMethod } from '../../logger.interfaces'; +import { Any, Callback, Fn, GroupMethod } from '../../logger.interfaces'; import { GroupFactory } from '../../services/group-factory.service'; import { Type } from '@angular/core'; @@ -9,9 +9,9 @@ import { Type } from '@angular/core'; export function groupDecoratorFactory( level: LoggerLevel, groupType: GroupLevel, - method: any, + method: Fn, title: string | Callback, - args: any[], + args: Any[], target: Type ): unknown { let result: unknown; diff --git a/projects/logger/src/lib/services/group-factory.service.ts b/projects/logger/src/lib/services/group-factory.service.ts index a725373..093b3cf 100644 --- a/projects/logger/src/lib/services/group-factory.service.ts +++ b/projects/logger/src/lib/services/group-factory.service.ts @@ -1,6 +1,6 @@ import { Inject, Injectable } from '@angular/core'; import { ConsoleService } from './console.service'; -import { GroupMethod, LABEL_NAMES, Pipeline } from '../logger.interfaces'; +import { Any, GroupMethod, LABEL_NAMES, Pipeline } from '../logger.interfaces'; import { LoggerService } from '../logger.service'; import { LABELS, LoggerLevel } from '../logger.config'; import { CssFactory } from './css-factory.service'; @@ -62,9 +62,9 @@ export class GroupFactory { groupType(label, lineStyle, title); if (pipeline) { - const pipe: any = pipeline(logger); + const result: Any = pipeline(logger); this.close(); - pipeLineResult = pipe; + pipeLineResult = result; } } else { this.executePipesGroup = false; From cff227fb8df243c64c45d7244f3a1edecf4679a3 Mon Sep 17 00:00:00 2001 From: "e.zbarskaya" Date: Mon, 3 Jun 2019 13:58:36 +0300 Subject: [PATCH 05/11] chore: remove changelog --- CHANGELOG.md | 172 ---------------------------------------------- package-lock.json | 17 ----- package.json | 1 - 3 files changed, 190 deletions(-) delete mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index ec72dbe..0000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,172 +0,0 @@ -#### 0.0.0 (2019-05-31) - -##### Build System / Dependencies - -* **deps:** bump tar from 2.2.1 to 2.2.2 (#5) (95fa24d7) -* coverage pipeline (ce31cba4) -* add realise tools (a2bd14d6) - -##### Chores - -* small fix in path (bccfbce3) -* fix by prettier (938e4cbd) -* update package json (c7d5e95b) -* update package json (4eb14b25) -* move helpers, change loops (62dd41a3) -* change loops (709cdc19) -* fix type (41af75ea) -* remove jest config from package.json (010c1118) -* format files (e885c0b2) -* move type (4a55b718) -* update .gitignore (d402b98f) -* fix packages (91eb0102) - -##### Continuous Integration - -* bump node version (5e835d0c) - -##### Documentation Changes - -* change navigation (4347278e) -* change example (9a04cc8b) -* change example (0f2d0f2b) -* add examples to readme and preview (54955e91) -* update README.md (3192d892) -* small fix in readme (7eabb6c0) -* small fix in readme (5cb735e0) -* small fix in readme (1779202a) -* add examples to Readme (8eaa3640) - -##### New Features - -* add timer decorator (e219a138) -* add husky (6c05100b) -* add global configs (2c872793) -* add css classes and global style lines (66c4aaa8) -* add level groups (db4836d3) -* add level groups (d86a7d11) -* add json factory, clipboard factory (8825ce5d) -* add clipboard service (5cea592e) -* add json-factory service (8f6c90ce) -* add jest (3e5a9185) -* add prettier (f9563462) -* add custom css (7d5d120f) - -##### Other Changes - -* add decorators (579bb843) - -##### Refactors - -* fix naming after codereview (39c3e6dc) -* fix const (87e76195) -* fix after code review (d57a0c73) -* fix sonar issues (725f35b9) -* fix type after code review (659edc0f) -* small fix (5ad72a7d) -* change path in timer-factory (311bfcc0) -* change after code review (599af2fb) -* change after codereview (3e20b8ba) -* small fix after code review (e6edc773) -* small fix after code review (aacb30b8) -* small fix after sonar (aedd6cdb) -* small fixes after sonar (eb0cc8ac) -* small fixes (92944d60) -* small fixes after reviews (574a50d4) -* small fixes after reviews (4d85934e) -* small fixes after reviews (971fa072) - -##### Tests - -* add tests for timer decorator (133d410b) -* add tests for decorators (b2a2fc06) -* remove duplicate literals in css-parcer (12cc068f) -* add tests (f6b05cf7) -* add clipboard, css, group unit tests (0d24fbec) - -#### 0.0.0 (2019-05-31) - -##### Build System / Dependencies - -* **deps:** bump tar from 2.2.1 to 2.2.2 (#5) (95fa24d7) -* coverage pipeline (ce31cba4) -* add realise tools (a2bd14d6) - -##### Chores - -* small fix in path (bccfbce3) -* fix by prettier (938e4cbd) -* update package json (c7d5e95b) -* update package json (4eb14b25) -* move helpers, change loops (62dd41a3) -* change loops (709cdc19) -* fix type (41af75ea) -* remove jest config from package.json (010c1118) -* format files (e885c0b2) -* move type (4a55b718) -* update .gitignore (d402b98f) -* fix packages (91eb0102) - -##### Continuous Integration - -* bump node version (5e835d0c) - -##### Documentation Changes - -* change navigation (4347278e) -* change example (9a04cc8b) -* change example (0f2d0f2b) -* add examples to readme and preview (54955e91) -* update README.md (3192d892) -* small fix in readme (7eabb6c0) -* small fix in readme (5cb735e0) -* small fix in readme (1779202a) -* add examples to Readme (8eaa3640) - -##### New Features - -* add timer decorator (e219a138) -* add husky (6c05100b) -* add global configs (2c872793) -* add css classes and global style lines (66c4aaa8) -* add level groups (db4836d3) -* add level groups (d86a7d11) -* add json factory, clipboard factory (8825ce5d) -* add clipboard service (5cea592e) -* add json-factory service (8f6c90ce) -* add jest (3e5a9185) -* add prettier (f9563462) -* add custom css (7d5d120f) - -##### Other Changes - -* add decorators (579bb843) - -##### Refactors - -* fix naming after codereview (39c3e6dc) -* fix const (87e76195) -* fix after code review (d57a0c73) -* fix sonar issues (725f35b9) -* fix type after code review (659edc0f) -* small fix (5ad72a7d) -* change path in timer-factory (311bfcc0) -* change after code review (599af2fb) -* change after codereview (3e20b8ba) -* small fix after code review (e6edc773) -* small fix after code review (aacb30b8) -* small fix after sonar (aedd6cdb) -* small fixes after sonar (eb0cc8ac) -* small fixes (92944d60) -* small fixes after reviews (574a50d4) -* small fixes after reviews (4d85934e) -* small fixes after reviews (971fa072) - -##### Tests - -* add tests for timer decorator (133d410b) -* add tests for decorators (b2a2fc06) -* remove duplicate literals in css-parcer (12cc068f) -* add tests (f6b05cf7) -* add clipboard, css, group unit tests (0d24fbec) - diff --git a/package-lock.json b/package-lock.json index 7bf850e..4cd00ec 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5502,17 +5502,6 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, - "generate-changelog": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/generate-changelog/-/generate-changelog-1.7.1.tgz", - "integrity": "sha512-f57zId4iD0AVRyjHHH6SwOdevrW+5ikjr6ooqlzUf7Z27DBW4BZvWZtlXmy+LShf5C52aFBCvKVwd86ZA56ObQ==", - "dev": true, - "requires": { - "bluebird": "^3.0.6", - "commander": "^2.9.0", - "github-url-from-git": "^1.4.0" - } - }, "genfun": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz", @@ -5549,12 +5538,6 @@ "assert-plus": "^1.0.0" } }, - "github-url-from-git": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/github-url-from-git/-/github-url-from-git-1.5.0.tgz", - "integrity": "sha1-+YX+3MCpqledyI16/waNVcxiUaA=", - "dev": true - }, "glob": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", diff --git a/package.json b/package.json index f9a0d74..9ffb2ec 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,6 @@ "@types/node": "~8.9.4", "codelyzer": "^4.5.0", "coveralls": "^3.0.3", - "generate-changelog": "^1.7.1", "husky": "^2.3.0", "jasmine-core": "~2.99.1", "jasmine-spec-reporter": "~4.2.1", From be89458232bf4defac4498d26f68f95e31d8a908 Mon Sep 17 00:00:00 2001 From: "e.zbarskaya" Date: Mon, 3 Jun 2019 14:10:44 +0300 Subject: [PATCH 06/11] chore: remove changelog --- package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package.json b/package.json index 9ffb2ec..2d694e0 100644 --- a/package.json +++ b/package.json @@ -11,8 +11,7 @@ "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", - "changelog": "changelog" + "coverage": "jest --config ./jest.app.config.js --coverage && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage" }, "husky": { "hooks": { From 099644e54cca3e098e006de6fbe9b95cb59a930d Mon Sep 17 00:00:00 2001 From: "e.zbarskaya" Date: Mon, 3 Jun 2019 17:33:54 +0300 Subject: [PATCH 07/11] build: fix AOT --- helpers/console-fake.ts | 5 +++-- helpers/test.component.ts | 8 ++++---- projects/logger/src/lib/decorators/debug.decorator.ts | 5 +++-- projects/logger/src/lib/decorators/error.decorator.ts | 2 +- .../lib/decorators/groups/group-collapsed.decorator.ts | 3 ++- .../logger/src/lib/decorators/groups/group.common.ts | 8 ++++---- .../logger/src/lib/decorators/groups/group.decorator.ts | 3 ++- projects/logger/src/lib/decorators/info.decorator.ts | 2 +- projects/logger/src/lib/decorators/log.decorator.ts | 5 +++-- projects/logger/src/lib/decorators/logger.decorator.ts | 5 +++-- projects/logger/src/lib/decorators/timer.decorator.ts | 4 ++-- projects/logger/src/lib/decorators/trace.decorator.ts | 2 +- projects/logger/src/lib/decorators/warn.decorator.ts | 2 +- projects/logger/src/lib/logger.interfaces.ts | 1 + projects/logger/src/lib/logger.module.ts | 9 ++++++--- projects/logger/tests/clipboard.spec.ts | 4 ++-- projects/logger/tests/decorators.spec.ts | 5 +++-- projects/logger/tsconfig.lib.json | 8 ++++---- src/app/app.component.ts | 4 ++-- src/environments/environment.prod.ts | 1 + src/environments/environment.ts | 1 + src/main.ts | 2 +- tslint.json | 1 + 23 files changed, 52 insertions(+), 38 deletions(-) diff --git a/helpers/console-fake.ts b/helpers/console-fake.ts index 0b73ab8..91dfdda 100644 --- a/helpers/console-fake.ts +++ b/helpers/console-fake.ts @@ -18,6 +18,7 @@ export enum TestLoggerGroupType { } export class ConsoleFake implements Console { + // tslint:disable-next-line:no-any public Console: any; private _stack: ObjectKeyMap[] = []; @@ -40,7 +41,7 @@ export class ConsoleFake implements Console { } } - public table(data: any): void { + public table(data: unknown): void { this._stack.push({ [TestLoggerLineType.TABLE]: [data] }); } @@ -100,7 +101,7 @@ export class ConsoleFake implements Console { const stackList: string[] = this.stackList(this.stack(0)); const stackOptionsList: ObjectKeyMap = []; - stackList.forEach((line: any) => { + stackList.forEach((line: string) => { stackOptionsList.push({ label: String(line[0]).replace('%c', ''), styles: this.parseCssString(line[usageNext ? 2 : 1]) diff --git a/helpers/test.component.ts b/helpers/test.component.ts index 4a38362..77f082a 100644 --- a/helpers/test.component.ts +++ b/helpers/test.component.ts @@ -10,7 +10,7 @@ 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 { LogFn, TimerInfo } from '../projects/logger/src/lib/logger.interfaces'; +import { Fn, LogFn, TimerInfo } from '../projects/logger/src/lib/logger.interfaces'; import { TimerLog } from '../projects/logger/src/lib/decorators/timer.decorator'; // noinspection AngularMissingOrInvalidDeclarationInModule @@ -76,11 +76,11 @@ export class MyTestComponent implements OnInit { } @TimerLog('longQueryBySecond', LoggerLevel.INFO, false) - public longQueryBySecond(seconds: number, done: any): void { + public longQueryBySecond(seconds: number, done: Fn): void { this.extracted(seconds, done); } - public longQueryBySecondMs(seconds: number, done: any): void { + public longQueryBySecondMs(seconds: number, done: Fn): void { const info: TimerInfo = this.logger.startTime('longQueryBySecondMs'); this.extracted(seconds, done); this.logger.endTime(info); @@ -91,7 +91,7 @@ export class MyTestComponent implements OnInit { throw new Error('error'); } - private extracted(seconds: number, done: any): void { + private extracted(seconds: number, done: Fn): void { const e: number = new Date().getTime() + seconds * 1000; while (new Date().getTime() <= e) { this.doneHeavy = true; diff --git a/projects/logger/src/lib/decorators/debug.decorator.ts b/projects/logger/src/lib/decorators/debug.decorator.ts index e8d00de..ef8361f 100644 --- a/projects/logger/src/lib/decorators/debug.decorator.ts +++ b/projects/logger/src/lib/decorators/debug.decorator.ts @@ -1,13 +1,14 @@ +import { Type } from '@angular/core'; + import { LogFn } from './../logger.interfaces'; import { LoggerModule } from './../logger.module'; -import { Type } from '@angular/core'; export function DebugLog(): PropertyDecorator { return (target: Type, propertyName: string): void => { Object.defineProperty(target, propertyName, { configurable: false, get(): LogFn { - return LoggerModule.logger.debug; + return LoggerModule.logger().debug; } }); }; diff --git a/projects/logger/src/lib/decorators/error.decorator.ts b/projects/logger/src/lib/decorators/error.decorator.ts index e85d21f..04a8b13 100644 --- a/projects/logger/src/lib/decorators/error.decorator.ts +++ b/projects/logger/src/lib/decorators/error.decorator.ts @@ -7,7 +7,7 @@ export function ErrorLog(): PropertyDecorator { Object.defineProperty(target, propertyName, { configurable: false, get(): LogFn { - return LoggerModule.logger.error; + return LoggerModule.logger().error; } }); }; diff --git a/projects/logger/src/lib/decorators/groups/group-collapsed.decorator.ts b/projects/logger/src/lib/decorators/groups/group-collapsed.decorator.ts index d3561f5..ee6516e 100644 --- a/projects/logger/src/lib/decorators/groups/group-collapsed.decorator.ts +++ b/projects/logger/src/lib/decorators/groups/group-collapsed.decorator.ts @@ -1,7 +1,8 @@ +import { Type } from '@angular/core'; + import { GroupLevel, LoggerLevel } from '../../logger.config'; import { groupDecoratorFactory } from './group.common'; import { Any, Callback, DecoratorMethod } from '../../logger.interfaces'; -import { Type } from '@angular/core'; export function GroupCollapsed( title: string | Callback, diff --git a/projects/logger/src/lib/decorators/groups/group.common.ts b/projects/logger/src/lib/decorators/groups/group.common.ts index 40a0d1a..fa460a0 100644 --- a/projects/logger/src/lib/decorators/groups/group.common.ts +++ b/projects/logger/src/lib/decorators/groups/group.common.ts @@ -1,10 +1,10 @@ +import { Type } from '@angular/core'; + import { LoggerModule } from '../../logger.module'; import { LoggerService } from '../../logger.service'; import { LoggerLevel, GroupLevel } from '../../logger.config'; import { Any, Callback, Fn, GroupMethod } from '../../logger.interfaces'; - import { GroupFactory } from '../../services/group-factory.service'; -import { Type } from '@angular/core'; export function groupDecoratorFactory( level: LoggerLevel, @@ -15,8 +15,8 @@ export function groupDecoratorFactory( target: Type ): unknown { let result: unknown; - const logger: LoggerService = LoggerModule.logger; - const groupFactory: GroupFactory = LoggerModule.groupFactory; + const logger: LoggerService = LoggerModule.logger(); + const groupFactory: GroupFactory = LoggerModule.groupFactory(); const groupMethod: GroupMethod = groupFactory[groupType].bind(groupFactory); const label: string = typeof title === 'string' ? title : title(...args); diff --git a/projects/logger/src/lib/decorators/groups/group.decorator.ts b/projects/logger/src/lib/decorators/groups/group.decorator.ts index fdd3b8b..e00d3eb 100644 --- a/projects/logger/src/lib/decorators/groups/group.decorator.ts +++ b/projects/logger/src/lib/decorators/groups/group.decorator.ts @@ -1,7 +1,8 @@ +import { Type } from '@angular/core'; + import { GroupLevel, LoggerLevel } from '../../logger.config'; import { groupDecoratorFactory } from './group.common'; import { Any, Callback, DecoratorMethod } from '../../logger.interfaces'; -import { Type } from '@angular/core'; export function Group(title: string | Callback, level: LoggerLevel = LoggerLevel.INFO): DecoratorMethod { return (_target: Type, _key: string, descriptor: PropertyDescriptor): PropertyDescriptor => { diff --git a/projects/logger/src/lib/decorators/info.decorator.ts b/projects/logger/src/lib/decorators/info.decorator.ts index b7e4e76..ffd5d4b 100644 --- a/projects/logger/src/lib/decorators/info.decorator.ts +++ b/projects/logger/src/lib/decorators/info.decorator.ts @@ -7,7 +7,7 @@ export function InfoLog(): PropertyDecorator { Object.defineProperty(target, propertyName, { configurable: false, get(): LogFn { - return LoggerModule.logger.info; + return LoggerModule.logger().info; } }); }; diff --git a/projects/logger/src/lib/decorators/log.decorator.ts b/projects/logger/src/lib/decorators/log.decorator.ts index 6888028..d0dc6c3 100644 --- a/projects/logger/src/lib/decorators/log.decorator.ts +++ b/projects/logger/src/lib/decorators/log.decorator.ts @@ -1,13 +1,14 @@ +import { Type } from '@angular/core'; + import { LogFn } from './../logger.interfaces'; import { LoggerModule } from './../logger.module'; -import { Type } from '@angular/core'; export function Log(): PropertyDecorator { return (target: Type, propertyName: string): void => { Object.defineProperty(target, propertyName, { configurable: false, get(): LogFn { - return LoggerModule.logger.log; + return LoggerModule.logger().log; } }); }; diff --git a/projects/logger/src/lib/decorators/logger.decorator.ts b/projects/logger/src/lib/decorators/logger.decorator.ts index 75a1dac..94b3d3d 100644 --- a/projects/logger/src/lib/decorators/logger.decorator.ts +++ b/projects/logger/src/lib/decorators/logger.decorator.ts @@ -1,13 +1,14 @@ +import { Type } from '@angular/core'; + import { LoggerModule } from '../logger.module'; import { LoggerService } from '../logger.service'; -import { Type } from '@angular/core'; export function Logger(): PropertyDecorator { return (target: Type, propertyName: string): void => { Object.defineProperty(target, propertyName, { configurable: false, get(): LoggerService { - return LoggerModule.logger; + return LoggerModule.logger(); } }); }; diff --git a/projects/logger/src/lib/decorators/timer.decorator.ts b/projects/logger/src/lib/decorators/timer.decorator.ts index 04d3c90..0058175 100644 --- a/projects/logger/src/lib/decorators/timer.decorator.ts +++ b/projects/logger/src/lib/decorators/timer.decorator.ts @@ -12,9 +12,9 @@ export function TimerLog( let result: PropertyDescriptor; const method: Fn = descriptor.value; descriptor.value = function(...args: Any[]): PropertyDescriptor { - const info: TimerInfo | null = LoggerModule.logger.startTime(title, level); + const info: TimerInfo | null = LoggerModule.logger().startTime(title, level); result = method.apply(this, args); - LoggerModule.logger.endTime(info, level, isMillisecond); + LoggerModule.logger().endTime(info, level, isMillisecond); return result; }; return descriptor; diff --git a/projects/logger/src/lib/decorators/trace.decorator.ts b/projects/logger/src/lib/decorators/trace.decorator.ts index 9bdde50..3eec07e 100644 --- a/projects/logger/src/lib/decorators/trace.decorator.ts +++ b/projects/logger/src/lib/decorators/trace.decorator.ts @@ -7,7 +7,7 @@ export function TraceLog(): PropertyDecorator { Object.defineProperty(target, propertyName, { configurable: false, get(): LogFn { - return LoggerModule.logger.trace; + return LoggerModule.logger().trace; } }); }; diff --git a/projects/logger/src/lib/decorators/warn.decorator.ts b/projects/logger/src/lib/decorators/warn.decorator.ts index 05d21d3..f23981d 100644 --- a/projects/logger/src/lib/decorators/warn.decorator.ts +++ b/projects/logger/src/lib/decorators/warn.decorator.ts @@ -7,7 +7,7 @@ export function WarnLog(): PropertyDecorator { Object.defineProperty(target, propertyName, { configurable: false, get(): LogFn { - return LoggerModule.logger.warn; + return LoggerModule.logger().warn; } }); }; diff --git a/projects/logger/src/lib/logger.interfaces.ts b/projects/logger/src/lib/logger.interfaces.ts index f10b3ee..5fda6fb 100644 --- a/projects/logger/src/lib/logger.interfaces.ts +++ b/projects/logger/src/lib/logger.interfaces.ts @@ -28,6 +28,7 @@ export interface ObjectKeyMap { [key: string]: T; } +// tslint:disable-next-line:no-any export type Any = any; // NOSONAR export type DecoratorMethod = (target: Any, key: string, descriptor: PropertyDescriptor) => PropertyDescriptor; diff --git a/projects/logger/src/lib/logger.module.ts b/projects/logger/src/lib/logger.module.ts index d773b8d..b31a42f 100644 --- a/projects/logger/src/lib/logger.module.ts +++ b/projects/logger/src/lib/logger.module.ts @@ -1,4 +1,5 @@ import { Injector, ModuleWithProviders, NgModule } from '@angular/core'; + import { LoggerService } from './logger.service'; import { LoggerFactory } from './services/factory.service'; import { ConsoleService } from './services/console.service'; @@ -31,18 +32,20 @@ import { TimerFactory } from './services/timer-factory.service'; TimerFactory ] }) + +// @dynamic export class LoggerModule { - private static injector: Injector; + private static injector: Injector = undefined; constructor(injector: Injector) { LoggerModule.injector = injector; } - public static get logger(): LoggerService { + public static logger(): LoggerService { return LoggerModule.injector.get(LoggerService); } - public static get groupFactory(): GroupFactory { + public static groupFactory(): GroupFactory { return LoggerModule.injector.get(GroupFactory); } diff --git a/projects/logger/tests/clipboard.spec.ts b/projects/logger/tests/clipboard.spec.ts index 05c4841..9232c7d 100644 --- a/projects/logger/tests/clipboard.spec.ts +++ b/projects/logger/tests/clipboard.spec.ts @@ -10,7 +10,7 @@ describe('[TEST]: Check clipboard', () => { const fakeConsole: Console & ConsoleFake = new ConsoleFake(); const textarea: Partial = { textContent: null, - style: {} as any, + style: {} as CSSStyleDeclaration, select: (): void => {} }; @@ -28,7 +28,7 @@ describe('[TEST]: Check clipboard', () => { beforeEach(() => { buffer = null; - (window as any).clipboardData = null; + window.clipboardData = null; document.queryCommandSupported = null; textarea.textContent = null; document.execCommand = null; diff --git a/projects/logger/tests/decorators.spec.ts b/projects/logger/tests/decorators.spec.ts index dfdac81..8ad35c7 100644 --- a/projects/logger/tests/decorators.spec.ts +++ b/projects/logger/tests/decorators.spec.ts @@ -4,6 +4,7 @@ import { LoggerService } from '../src/lib/logger.service'; import { MyTestComponent } from '../../../helpers/test.component'; import { LoggerLevel } from '../src/lib/logger.config'; import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { Fn } from '@angular-ru/logger'; describe('[TEST]: Decorator API', () => { let logger: LoggerService; @@ -132,14 +133,14 @@ describe('[TEST]: Decorator API', () => { expect(fakeConsole.stack()).toEqual(fakeConsole.createStack()); }); - it('query by second timer', (done: any) => { + it('query by second timer', (done: Fn) => { component.longQueryBySecond(3, done); expect(fakeConsole.stack()).toEqual( fakeConsole.createStack({ info: ['TimerLog: longQueryBySecond', 'took 3s to execute'] }) ); }); - it('query by ms timer', (done: any) => { + it('query by ms timer', (done: Fn) => { component.longQueryBySecondMs(3, done); expect(fakeConsole.stack().includes('TimerLog: longQueryBySecondMs')).toEqual(true); }); diff --git a/projects/logger/tsconfig.lib.json b/projects/logger/tsconfig.lib.json index 3ebc8fc..656264a 100644 --- a/projects/logger/tsconfig.lib.json +++ b/projects/logger/tsconfig.lib.json @@ -17,12 +17,12 @@ "lib": ["dom", "es2018"] }, "angularCompilerOptions": { - "fullTemplateTypeCheck": false, "annotateForClosureCompiler": true, + "skipTemplateCodegen": true, + "strictMetadataEmit": true, + "fullTemplateTypeCheck": true, "strictInjectionParameters": true, - "skipTemplateCodegen": false, - "preserveWhitespaces": true, - "skipMetadataEmit": false + "enableResourceInlining": true }, "exclude": ["**/*.spec.ts"] } diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 710ad22..f0e2b42 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -172,7 +172,7 @@ export class AppComponent implements OnInit { this.logger.log(...this.logger.prettyJSON(jsonExample)); } - public showExample7(): any { + public showExample7(): void { this.logger.clear(); const example: string = 'test string'; @@ -181,7 +181,7 @@ export class AppComponent implements OnInit { this.logger.copy(example); } - public showExample8(): any { + public showExample8(): void { this.logger.clear(); this.logger.level = LoggerLevel.INFO; diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts index 9d33b28..417da41 100644 --- a/src/environments/environment.prod.ts +++ b/src/environments/environment.prod.ts @@ -1,3 +1,4 @@ +// tslint:disable-next-line:no-any export const environment: any = { production: true, useConfig: true diff --git a/src/environments/environment.ts b/src/environments/environment.ts index 8b2b697..b30119b 100644 --- a/src/environments/environment.ts +++ b/src/environments/environment.ts @@ -1,3 +1,4 @@ +// tslint:disable-next-line:no-any export const environment: any = { production: false, useConfig: true diff --git a/src/main.ts b/src/main.ts index eac691b..2cc5363 100644 --- a/src/main.ts +++ b/src/main.ts @@ -10,4 +10,4 @@ if (environment.production) { platformBrowserDynamic() .bootstrapModule(AppModule) - .catch((err: any) => console.error(err)); + .catch((err: Error) => console.error(err)); diff --git a/tslint.json b/tslint.json index b2a1b62..f4bc109 100644 --- a/tslint.json +++ b/tslint.json @@ -102,6 +102,7 @@ } ], "no-arg": true, + "no-any": true, "no-console": [true, "log", "debug", "info", "time", "timeEnd", "trace"], "no-construct": true, "no-debugger": true, From c9bd99664220ce96be077947afb19f9aed32cfee Mon Sep 17 00:00:00 2001 From: "e.zbarskaya" Date: Mon, 3 Jun 2019 17:34:09 +0300 Subject: [PATCH 08/11] small fix --- helpers/console-fake.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/helpers/console-fake.ts b/helpers/console-fake.ts index 91dfdda..63328c3 100644 --- a/helpers/console-fake.ts +++ b/helpers/console-fake.ts @@ -18,7 +18,7 @@ export enum TestLoggerGroupType { } export class ConsoleFake implements Console { - // tslint:disable-next-line:no-any + // tslint:disable-next-line:no-any public Console: any; private _stack: ObjectKeyMap[] = []; From 50cb34be631dfa450802d47c25bebeabd475078a Mon Sep 17 00:00:00 2001 From: "e.zbarskaya" Date: Mon, 3 Jun 2019 17:57:47 +0300 Subject: [PATCH 09/11] small fix --- projects/logger/src/lib/decorators/info.decorator.ts | 3 ++- projects/logger/src/lib/decorators/timer.decorator.ts | 3 ++- projects/logger/src/lib/decorators/trace.decorator.ts | 3 ++- projects/logger/src/lib/decorators/warn.decorator.ts | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/projects/logger/src/lib/decorators/info.decorator.ts b/projects/logger/src/lib/decorators/info.decorator.ts index ffd5d4b..5cabba7 100644 --- a/projects/logger/src/lib/decorators/info.decorator.ts +++ b/projects/logger/src/lib/decorators/info.decorator.ts @@ -1,6 +1,7 @@ +import { Type } from '@angular/core'; + import { LogFn } from './../logger.interfaces'; import { LoggerModule } from './../logger.module'; -import { Type } from '@angular/core'; export function InfoLog(): PropertyDecorator { return (target: Type, propertyName: string): void => { diff --git a/projects/logger/src/lib/decorators/timer.decorator.ts b/projects/logger/src/lib/decorators/timer.decorator.ts index 0058175..58a7529 100644 --- a/projects/logger/src/lib/decorators/timer.decorator.ts +++ b/projects/logger/src/lib/decorators/timer.decorator.ts @@ -1,7 +1,8 @@ +import { Type } from '@angular/core'; + import { LoggerLevel } from '../logger.config'; import { Any, DecoratorMethod, Fn, TimerInfo, TimerLevels } from '../logger.interfaces'; import { LoggerModule } from '../logger.module'; -import { Type } from '@angular/core'; export function TimerLog( title: string, diff --git a/projects/logger/src/lib/decorators/trace.decorator.ts b/projects/logger/src/lib/decorators/trace.decorator.ts index 3eec07e..572968b 100644 --- a/projects/logger/src/lib/decorators/trace.decorator.ts +++ b/projects/logger/src/lib/decorators/trace.decorator.ts @@ -1,6 +1,7 @@ +import { Type } from '@angular/core'; + import { LogFn } from './../logger.interfaces'; import { LoggerModule } from './../logger.module'; -import { Type } from '@angular/core'; export function TraceLog(): PropertyDecorator { return (target: Type, propertyName: string): void => { diff --git a/projects/logger/src/lib/decorators/warn.decorator.ts b/projects/logger/src/lib/decorators/warn.decorator.ts index f23981d..4a8c921 100644 --- a/projects/logger/src/lib/decorators/warn.decorator.ts +++ b/projects/logger/src/lib/decorators/warn.decorator.ts @@ -1,6 +1,7 @@ +import { Type } from '@angular/core'; + import { LogFn } from './../logger.interfaces'; import { LoggerModule } from './../logger.module'; -import { Type } from '@angular/core'; export function WarnLog(): PropertyDecorator { return (target: Type, propertyName: string): void => { From 5e7972ef99c7fe1788f628b3f3c13a694802bdfa Mon Sep 17 00:00:00 2001 From: "e.zbarskaya" Date: Mon, 3 Jun 2019 18:04:24 +0300 Subject: [PATCH 10/11] small fix --- projects/logger/src/lib/decorators/debug.decorator.ts | 2 +- projects/logger/src/lib/decorators/log.decorator.ts | 2 +- projects/logger/src/lib/decorators/logger.decorator.ts | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/projects/logger/src/lib/decorators/debug.decorator.ts b/projects/logger/src/lib/decorators/debug.decorator.ts index 6fa02a8..dabd1bb 100644 --- a/projects/logger/src/lib/decorators/debug.decorator.ts +++ b/projects/logger/src/lib/decorators/debug.decorator.ts @@ -2,7 +2,7 @@ import { Type } from '@angular/core'; import { LogFn } from './../logger.interfaces'; import { LoggerModule } from './../logger.module'; -import { Type } from '@angular/core'; + export function DebugLog(): PropertyDecorator { return (target: Type, propertyName: string): void => { diff --git a/projects/logger/src/lib/decorators/log.decorator.ts b/projects/logger/src/lib/decorators/log.decorator.ts index 638669b..1150347 100644 --- a/projects/logger/src/lib/decorators/log.decorator.ts +++ b/projects/logger/src/lib/decorators/log.decorator.ts @@ -2,7 +2,7 @@ import { Type } from '@angular/core'; import { LogFn } from './../logger.interfaces'; import { LoggerModule } from './../logger.module'; -import { Type } from '@angular/core'; + export function Log(): PropertyDecorator { return (target: Type, propertyName: string): void => { diff --git a/projects/logger/src/lib/decorators/logger.decorator.ts b/projects/logger/src/lib/decorators/logger.decorator.ts index ef49e33..94b3d3d 100644 --- a/projects/logger/src/lib/decorators/logger.decorator.ts +++ b/projects/logger/src/lib/decorators/logger.decorator.ts @@ -2,7 +2,6 @@ import { Type } from '@angular/core'; import { LoggerModule } from '../logger.module'; import { LoggerService } from '../logger.service'; -import { Type } from '@angular/core'; export function Logger(): PropertyDecorator { return (target: Type, propertyName: string): void => { From e6f2c8e0155323bae12d55a40f22bf0489cf5779 Mon Sep 17 00:00:00 2001 From: "e.zbarskaya" Date: Mon, 3 Jun 2019 18:07:22 +0300 Subject: [PATCH 11/11] small fix --- projects/logger/src/lib/decorators/debug.decorator.ts | 1 - projects/logger/src/lib/decorators/log.decorator.ts | 1 - 2 files changed, 2 deletions(-) diff --git a/projects/logger/src/lib/decorators/debug.decorator.ts b/projects/logger/src/lib/decorators/debug.decorator.ts index dabd1bb..ef8361f 100644 --- a/projects/logger/src/lib/decorators/debug.decorator.ts +++ b/projects/logger/src/lib/decorators/debug.decorator.ts @@ -3,7 +3,6 @@ import { Type } from '@angular/core'; import { LogFn } from './../logger.interfaces'; import { LoggerModule } from './../logger.module'; - export function DebugLog(): PropertyDecorator { return (target: Type, propertyName: string): void => { Object.defineProperty(target, propertyName, { diff --git a/projects/logger/src/lib/decorators/log.decorator.ts b/projects/logger/src/lib/decorators/log.decorator.ts index 1150347..d0dc6c3 100644 --- a/projects/logger/src/lib/decorators/log.decorator.ts +++ b/projects/logger/src/lib/decorators/log.decorator.ts @@ -3,7 +3,6 @@ import { Type } from '@angular/core'; import { LogFn } from './../logger.interfaces'; import { LoggerModule } from './../logger.module'; - export function Log(): PropertyDecorator { return (target: Type, propertyName: string): void => { Object.defineProperty(target, propertyName, {