ing
This commit is contained in:
		
						commit
						12e77ec0fa
					
				
							
								
								
									
										46
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,46 @@
 | 
			
		||||
# See http://help.github.com/ignore-files/ for more about ignoring files.
 | 
			
		||||
 | 
			
		||||
# compiled output
 | 
			
		||||
/dist
 | 
			
		||||
/dist-server
 | 
			
		||||
/tmp
 | 
			
		||||
/out-tsc
 | 
			
		||||
/docs
 | 
			
		||||
 | 
			
		||||
# dependencies
 | 
			
		||||
/node_modules
 | 
			
		||||
 | 
			
		||||
# IDEs and editors
 | 
			
		||||
/.idea
 | 
			
		||||
.project
 | 
			
		||||
.classpath
 | 
			
		||||
.c9/
 | 
			
		||||
*.launch
 | 
			
		||||
.settings/
 | 
			
		||||
*.sublime-workspace
 | 
			
		||||
 | 
			
		||||
# IDE - VSCode
 | 
			
		||||
.vscode/*
 | 
			
		||||
!.vscode/settings.json
 | 
			
		||||
!.vscode/tasks.json
 | 
			
		||||
!.vscode/launch.json
 | 
			
		||||
!.vscode/extensions.json
 | 
			
		||||
 | 
			
		||||
# misc
 | 
			
		||||
/.sass-cache
 | 
			
		||||
/connect.lock
 | 
			
		||||
/coverage
 | 
			
		||||
/libpeerconnection.log
 | 
			
		||||
npm-debug.log
 | 
			
		||||
testem.log
 | 
			
		||||
/typings
 | 
			
		||||
 | 
			
		||||
# e2e
 | 
			
		||||
/e2e/*.js
 | 
			
		||||
/e2e/*.map
 | 
			
		||||
 | 
			
		||||
# System Files
 | 
			
		||||
.DS_Store
 | 
			
		||||
Thumbs.db
 | 
			
		||||
 | 
			
		||||
yarn.lock
 | 
			
		||||
							
								
								
									
										9
									
								
								.make-package.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								.make-package.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,9 @@
 | 
			
		||||
const fs = require('fs');
 | 
			
		||||
const packageJson = JSON.parse(fs.readFileSync('./package.json').toString());
 | 
			
		||||
 | 
			
		||||
delete packageJson.devDependencies;
 | 
			
		||||
delete packageJson.scripts;
 | 
			
		||||
 | 
			
		||||
packageJson.private = false;
 | 
			
		||||
 | 
			
		||||
fs.writeFileSync('./dist/package.json', JSON.stringify(packageJson, null, 2));
 | 
			
		||||
							
								
								
									
										21
									
								
								License
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								License
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,21 @@
 | 
			
		||||
MIT License
 | 
			
		||||
 | 
			
		||||
Copyright (c) 2017 
 | 
			
		||||
 | 
			
		||||
Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
			
		||||
of this software and associated documentation files (the "Software"), to deal
 | 
			
		||||
in the Software without restriction, including without limitation the rights
 | 
			
		||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
			
		||||
copies of the Software, and to permit persons to whom the Software is
 | 
			
		||||
furnished to do so, subject to the following conditions:
 | 
			
		||||
 | 
			
		||||
The above copyright notice and this permission notice shall be included in all
 | 
			
		||||
copies or substantial portions of the Software.
 | 
			
		||||
 | 
			
		||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
			
		||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
			
		||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
			
		||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
			
		||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
			
		||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
			
		||||
SOFTWARE.
 | 
			
		||||
							
								
								
									
										6492
									
								
								package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										6492
									
								
								package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										43
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,43 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "@loafer/ng-logger",
 | 
			
		||||
  "description": "Angular Logger",
 | 
			
		||||
  "version": "0.0.1",
 | 
			
		||||
  "license": "MIT",
 | 
			
		||||
  "private": true,
 | 
			
		||||
  "main": "./index.js",
 | 
			
		||||
  "typings": "./index.d.ts",
 | 
			
		||||
  "repository": {
 | 
			
		||||
    "type": "git",
 | 
			
		||||
    "url": "https://git.loafle.net/loafer/typescript/ng-logger.git"
 | 
			
		||||
  },
 | 
			
		||||
  "publishConfig": {
 | 
			
		||||
    "registry": "https://nexus.loafle.net/repository/npm-loafle/"
 | 
			
		||||
  },
 | 
			
		||||
  "keywords": [],
 | 
			
		||||
  "author": "Loafle <loafer@loafle.com>",
 | 
			
		||||
  "scripts": {
 | 
			
		||||
    "generate:package": "node .make-package.js",
 | 
			
		||||
    "generate:doc": "rimraf docs && typedoc --out docs --target es6 --theme minimal --mode file src",
 | 
			
		||||
    "bundle": "rimraf dist && tsc",
 | 
			
		||||
    "build": "npm run bundle && npm run generate:package && npm run generate:doc"
 | 
			
		||||
  },
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "@angular/common": "^5.2.9",
 | 
			
		||||
    "@angular/core": "^5.2.9",
 | 
			
		||||
    "rxjs": "^5.5.8"
 | 
			
		||||
  },
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "@types/jest": "^22.2.3",
 | 
			
		||||
    "@types/node": "^9.3.0",
 | 
			
		||||
    "jest": "^22.4.3",
 | 
			
		||||
    "prettier": "^1.12.1",
 | 
			
		||||
    "rimraf": "^2.6.2",
 | 
			
		||||
    "ts-jest": "^22.4.6",
 | 
			
		||||
    "ts-node": "^6.0.3",
 | 
			
		||||
    "tslint": "^5.10.0",
 | 
			
		||||
    "tslint-config-prettier": "^1.12.0",
 | 
			
		||||
    "tslint-config-standard": "^7.0.0",
 | 
			
		||||
    "typedoc": "^0.11.1",
 | 
			
		||||
    "typescript": "^2.8.3"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										6
									
								
								src/core/config.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								src/core/config.ts
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,6 @@
 | 
			
		||||
import { LoggerLevel } from './type';
 | 
			
		||||
 | 
			
		||||
export interface LoggerConfig {
 | 
			
		||||
  level: LoggerLevel;
 | 
			
		||||
  serverLogLevel?: LoggerLevel;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										3
									
								
								src/core/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								src/core/index.ts
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,3 @@
 | 
			
		||||
export * from './config';
 | 
			
		||||
export * from './token';
 | 
			
		||||
export * from './type';
 | 
			
		||||
							
								
								
									
										3
									
								
								src/core/token.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								src/core/token.ts
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,3 @@
 | 
			
		||||
import { InjectionToken } from '@angular/core';
 | 
			
		||||
 | 
			
		||||
export const _LOGGER_CONFIG = new InjectionToken('@loafer/ng-logger Internal Logger config');
 | 
			
		||||
							
								
								
									
										26
									
								
								src/core/type.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								src/core/type.ts
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,26 @@
 | 
			
		||||
export enum LoggerLevel {
 | 
			
		||||
  TRACE = 0,
 | 
			
		||||
  DEBUG,
 | 
			
		||||
  INFO,
 | 
			
		||||
  LOG,
 | 
			
		||||
  WARN,
 | 
			
		||||
  ERROR,
 | 
			
		||||
  OFF,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export const LoggerLevelName = [
 | 
			
		||||
  'TRACE',
 | 
			
		||||
  'DEBUG',
 | 
			
		||||
  'INFO',
 | 
			
		||||
  'LOG',
 | 
			
		||||
  'WARN',
 | 
			
		||||
  'ERROR',
 | 
			
		||||
  'OFF'
 | 
			
		||||
];
 | 
			
		||||
 | 
			
		||||
export interface ServerLoggingParameter {
 | 
			
		||||
  level: string;
 | 
			
		||||
  message: string;
 | 
			
		||||
  addtional?: string;
 | 
			
		||||
  timestamp: Date;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										1
									
								
								src/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								src/index.ts
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
			
		||||
export * from './ng-logger.module';
 | 
			
		||||
							
								
								
									
										62
									
								
								src/ng-logger.module.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								src/ng-logger.module.ts
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,62 @@
 | 
			
		||||
import {
 | 
			
		||||
  NgModule,
 | 
			
		||||
  ModuleWithProviders,
 | 
			
		||||
} from '@angular/core';
 | 
			
		||||
 | 
			
		||||
import {
 | 
			
		||||
  _LOGGER_CONFIG,
 | 
			
		||||
  LoggerConfig,
 | 
			
		||||
} from './core';
 | 
			
		||||
 | 
			
		||||
import {
 | 
			
		||||
  SERVICES, LoggerService,
 | 
			
		||||
} from './service';
 | 
			
		||||
 | 
			
		||||
export interface LoggerFeatureModuleConfig {
 | 
			
		||||
  url?: any;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface LoggerRootModuleConfig {
 | 
			
		||||
  config: LoggerConfig;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@NgModule({})
 | 
			
		||||
export class LoggerRootModule {
 | 
			
		||||
  constructor(
 | 
			
		||||
    private loggerService: LoggerService,
 | 
			
		||||
  ) {
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@NgModule({})
 | 
			
		||||
export class LoggerFeatureModule {
 | 
			
		||||
  constructor(
 | 
			
		||||
    private loggerService: LoggerService,
 | 
			
		||||
    private root: LoggerRootModule,
 | 
			
		||||
  ) {
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@NgModule({})
 | 
			
		||||
export class LoggerModule {
 | 
			
		||||
  static forRoot(config: LoggerRootModuleConfig): ModuleWithProviders {
 | 
			
		||||
    return {
 | 
			
		||||
      ngModule: LoggerRootModule,
 | 
			
		||||
      providers: [
 | 
			
		||||
        {
 | 
			
		||||
          provide: _LOGGER_CONFIG,
 | 
			
		||||
          useValue: config.config,
 | 
			
		||||
        },
 | 
			
		||||
        SERVICES,
 | 
			
		||||
      ],
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static forFeature(config: LoggerFeatureModuleConfig): ModuleWithProviders {
 | 
			
		||||
    return {
 | 
			
		||||
      ngModule: LoggerFeatureModule,
 | 
			
		||||
      providers: [
 | 
			
		||||
      ],
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										7
									
								
								src/service/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								src/service/index.ts
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,7 @@
 | 
			
		||||
export * from './logger.service';
 | 
			
		||||
 | 
			
		||||
import { LoggerService } from './logger.service';
 | 
			
		||||
 | 
			
		||||
export const SERVICES = [
 | 
			
		||||
  LoggerService,
 | 
			
		||||
];
 | 
			
		||||
							
								
								
									
										158
									
								
								src/service/logger.service.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										158
									
								
								src/service/logger.service.ts
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,158 @@
 | 
			
		||||
import { Injectable, Inject, PLATFORM_ID } from '@angular/core';
 | 
			
		||||
import { isPlatformBrowser } from '@angular/common';
 | 
			
		||||
 | 
			
		||||
import {
 | 
			
		||||
  LoggerConfig,
 | 
			
		||||
  LoggerLevel,
 | 
			
		||||
  LoggerLevelName,
 | 
			
		||||
  _LOGGER_CONFIG,
 | 
			
		||||
} from '../core';
 | 
			
		||||
 | 
			
		||||
export type ConsoleFunc = (message?: any, ...optionalParams: any[]) => void;
 | 
			
		||||
 | 
			
		||||
@Injectable()
 | 
			
		||||
export class LoggerService {
 | 
			
		||||
  private _isIE: boolean;
 | 
			
		||||
 | 
			
		||||
  public constructor(
 | 
			
		||||
    @Inject(_LOGGER_CONFIG) private readonly config: LoggerConfig,
 | 
			
		||||
    @Inject(PLATFORM_ID) private readonly platformId,
 | 
			
		||||
  ) {
 | 
			
		||||
    this._isIE = isPlatformBrowser(platformId) &&
 | 
			
		||||
    !!(navigator.userAgent.indexOf('MSIE') !== -1 || navigator.userAgent.match(/Trident\//) || navigator.userAgent.match(/Edge\//));
 | 
			
		||||
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  public get trace(): ConsoleFunc {
 | 
			
		||||
    return this.getConsoleMethod(LoggerLevel.TRACE);
 | 
			
		||||
  }
 | 
			
		||||
  public get debug(): ConsoleFunc {
 | 
			
		||||
    return this.getConsoleMethod(LoggerLevel.DEBUG);
 | 
			
		||||
  }
 | 
			
		||||
  public get info(): ConsoleFunc {
 | 
			
		||||
    return this.getConsoleMethod(LoggerLevel.INFO);
 | 
			
		||||
  }
 | 
			
		||||
  public get log(): ConsoleFunc {
 | 
			
		||||
    return this.getConsoleMethod(LoggerLevel.LOG);
 | 
			
		||||
  }
 | 
			
		||||
  public get warn(): ConsoleFunc {
 | 
			
		||||
    return this.getConsoleMethod(LoggerLevel.WARN);
 | 
			
		||||
  }
 | 
			
		||||
  public get error(): ConsoleFunc {
 | 
			
		||||
    return this.getConsoleMethod(LoggerLevel.ERROR);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  private _console_log: ConsoleFunc;
 | 
			
		||||
 | 
			
		||||
  private getConsoleMethod(level: LoggerLevel): ConsoleFunc {
 | 
			
		||||
    if (level < this.config.level) {
 | 
			
		||||
      return (message, ...additional: any[]) => {};
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (this._isIE) {
 | 
			
		||||
      switch (level) {
 | 
			
		||||
        case LoggerLevel.WARN:
 | 
			
		||||
          return console.warn.bind(console, ...this.getLogHeader(level));
 | 
			
		||||
        case LoggerLevel.ERROR:
 | 
			
		||||
          return console.error.bind(console, ...this.getLogHeader(level));
 | 
			
		||||
        case LoggerLevel.INFO:
 | 
			
		||||
          return console.info.bind(console, ...this.getLogHeader(level));
 | 
			
		||||
        default:
 | 
			
		||||
          return console.log.bind(console, ...this.getLogHeader(level));
 | 
			
		||||
      }
 | 
			
		||||
    } else {
 | 
			
		||||
      return console.log.bind(console, ...this.getLogHeader(level));
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  private getLogHeader(level: LoggerLevel): any[] {
 | 
			
		||||
    const params: any[] = [];
 | 
			
		||||
    params.push(`%c${this._timestamp()} [${LoggerLevelName[level]}]`);
 | 
			
		||||
    if (!this._isIE) {
 | 
			
		||||
      const color = this._getColor(level);
 | 
			
		||||
      params.push(`color:${color}`);
 | 
			
		||||
    }
 | 
			
		||||
    return params;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  private _timestamp(): string {
 | 
			
		||||
    return new Date().toISOString();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  private _log(level: LoggerLevel, message, additional: any[] = []): void {
 | 
			
		||||
    if (!message) {
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Allow logging on server even if client log level is off
 | 
			
		||||
    // if (logOnServer) {
 | 
			
		||||
    //   this._logOnServer(level, message, additional);
 | 
			
		||||
    // }
 | 
			
		||||
 | 
			
		||||
    // if no message or the log level is less than the environ
 | 
			
		||||
    if (level < this.config.level) {
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    try {
 | 
			
		||||
      message = typeof message === 'string' ? message : JSON.stringify(message, null, 2);
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      additional = [message, ...additional];
 | 
			
		||||
      message = 'The provided "message" value could not be parsed with JSON.stringify().';
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Coloring doesn't work in IE
 | 
			
		||||
    if (this._isIE) {
 | 
			
		||||
      return this._logIE(level, message, additional);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    const color = this._getColor(level);
 | 
			
		||||
 | 
			
		||||
    const params: any[] = [];
 | 
			
		||||
    params.push(`%c${this._timestamp()} [${LoggerLevelName[level]}]`);
 | 
			
		||||
    params.push(`color:${color}`);
 | 
			
		||||
    params.push(message);
 | 
			
		||||
    params.push(...additional);
 | 
			
		||||
 | 
			
		||||
    console.log.apply(console, params);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  private _logIE(level: LoggerLevel, message: string, additional: any[] = []): void {
 | 
			
		||||
    const params: any[] = [];
 | 
			
		||||
    params.push(`${this._timestamp()} [${LoggerLevelName[level]}] `);
 | 
			
		||||
    params.push(message);
 | 
			
		||||
    params.push(...additional);
 | 
			
		||||
 | 
			
		||||
    switch (level) {
 | 
			
		||||
      case LoggerLevel.WARN:
 | 
			
		||||
        console.warn.apply(console, params);
 | 
			
		||||
        break;
 | 
			
		||||
      case LoggerLevel.ERROR:
 | 
			
		||||
        console.error.apply(console, params);
 | 
			
		||||
        break;
 | 
			
		||||
      case LoggerLevel.INFO:
 | 
			
		||||
        console.info.apply(console, params);
 | 
			
		||||
        break;
 | 
			
		||||
      default:
 | 
			
		||||
        console.log.apply(console, params);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  private _getColor(level: LoggerLevel): 'blue' | 'teal' | 'gray' | 'red' | undefined {
 | 
			
		||||
    switch (level) {
 | 
			
		||||
      case LoggerLevel.TRACE:
 | 
			
		||||
        return 'blue';
 | 
			
		||||
      case LoggerLevel.DEBUG:
 | 
			
		||||
        return 'teal';
 | 
			
		||||
      case LoggerLevel.INFO:
 | 
			
		||||
      case LoggerLevel.LOG:
 | 
			
		||||
        return 'gray';
 | 
			
		||||
      case LoggerLevel.WARN:
 | 
			
		||||
      case LoggerLevel.ERROR:
 | 
			
		||||
        return 'red';
 | 
			
		||||
      case LoggerLevel.OFF:
 | 
			
		||||
      default:
 | 
			
		||||
        return undefined;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										45
									
								
								tsconfig.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								tsconfig.json
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,45 @@
 | 
			
		||||
{
 | 
			
		||||
  "compileOnSave": false,
 | 
			
		||||
  "compilerOptions": {
 | 
			
		||||
    "baseUrl": "./src",
 | 
			
		||||
    "outDir": "./dist",
 | 
			
		||||
    "sourceMap": true,
 | 
			
		||||
    "declaration": true,
 | 
			
		||||
    "newLine": "LF",
 | 
			
		||||
    "moduleResolution": "node",
 | 
			
		||||
 | 
			
		||||
    /* Strict Type-Checking Options */
 | 
			
		||||
    // "noImplicitAny": true /* Raise error on expressions and declarations with an implied 'any' type. */,
 | 
			
		||||
    // "strictNullChecks": true /* Enable strict null checks. */,
 | 
			
		||||
    // "strictFunctionTypes": true /* Enable strict checking of function types. */,
 | 
			
		||||
    // "strictPropertyInitialization": true /* Enable strict checking of property initialization in classes. */,
 | 
			
		||||
    // "noImplicitThis": true /* Raise error on 'this' expressions with an implied 'any' type. */,
 | 
			
		||||
    // "alwaysStrict": true /* Parse in strict mode and emit "use strict" for each source file. */,
 | 
			
		||||
 | 
			
		||||
    /* Additional Checks */
 | 
			
		||||
    // "noUnusedLocals": true /* Report errors on unused locals. */,
 | 
			
		||||
    // "noUnusedParameters": true /* Report errors on unused parameters. */,
 | 
			
		||||
    "noImplicitReturns": true /* Report error when not all code paths in function return a value. */,
 | 
			
		||||
    "noFallthroughCasesInSwitch": true /* Report errors for fallthrough cases in switch statement. */,
 | 
			
		||||
 | 
			
		||||
    /* Debugging Options */
 | 
			
		||||
    "traceResolution": false /* Report module resolution log messages. */,
 | 
			
		||||
    "listEmittedFiles": false /* Print names of generated files part of the compilation. */,
 | 
			
		||||
    "listFiles": false /* Print names of files part of the compilation. */,
 | 
			
		||||
    "pretty": true /* Stylize errors and messages using color and context. */,
 | 
			
		||||
 | 
			
		||||
    /* Experimental Options */
 | 
			
		||||
    "experimentalDecorators": true /* Enables experimental support for ES7 decorators. */,
 | 
			
		||||
    "emitDecoratorMetadata": true /* Enables experimental support for emitting type metadata for decorators. */,
 | 
			
		||||
 | 
			
		||||
    "target": "es5",
 | 
			
		||||
    "typeRoots": [
 | 
			
		||||
      "node_modules/@types"
 | 
			
		||||
    ],
 | 
			
		||||
    "types": [
 | 
			
		||||
    ],
 | 
			
		||||
    "lib": [
 | 
			
		||||
      "es2015", "es2016", "es2017", "dom"
 | 
			
		||||
    ]
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										34
									
								
								tslint.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								tslint.json
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,34 @@
 | 
			
		||||
{
 | 
			
		||||
  "extends": ["tslint:latest", "tslint-config-prettier", "tslint-immutable"],
 | 
			
		||||
  "rules": {
 | 
			
		||||
    "interface-name": [true, "never-prefix"],
 | 
			
		||||
    // TODO: allow devDependencies only in **/*.spec.ts files:
 | 
			
		||||
    // waiting on https://github.com/palantir/tslint/pull/3708
 | 
			
		||||
    "no-implicit-dependencies": [true, "dev"],
 | 
			
		||||
 | 
			
		||||
    /* tslint-immutable rules */
 | 
			
		||||
    // Recommended built-in rules
 | 
			
		||||
    "no-var-keyword": true,
 | 
			
		||||
    "no-parameter-reassignment": true,
 | 
			
		||||
    "typedef": [true, "call-signature"],
 | 
			
		||||
 | 
			
		||||
    // Immutability rules
 | 
			
		||||
    "readonly-keyword": true,
 | 
			
		||||
    "readonly-array": true,
 | 
			
		||||
    "no-let": true,
 | 
			
		||||
    "no-object-mutation": true,
 | 
			
		||||
    "no-delete": true,
 | 
			
		||||
    "no-method-signature": true,
 | 
			
		||||
 | 
			
		||||
    // Functional style rules
 | 
			
		||||
    "no-this": true,
 | 
			
		||||
    "no-class": true,
 | 
			
		||||
    "no-mixed-interface": true,
 | 
			
		||||
    "no-expression-statement": [
 | 
			
		||||
      true,
 | 
			
		||||
      { "ignore-prefix": ["console.", "process.exit"] }
 | 
			
		||||
    ],
 | 
			
		||||
    "no-if-statement": true
 | 
			
		||||
    /* end tslint-immutable rules */
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user