Refactoring
This commit is contained in:
		
							parent
							
								
									5a3cd80973
								
							
						
					
					
						commit
						caeba1197c
					
				
					 16 changed files with 84 additions and 206 deletions
				
			
		| 
						 | 
				
			
			@ -52,7 +52,7 @@ module.exports = (params) => new Promise(async (res, rej) => {
 | 
			
		|||
	const graph = [];
 | 
			
		||||
 | 
			
		||||
	for (let i = 0; i < 30; i++) {
 | 
			
		||||
		let day = new Date(new Date().setDate(new Date().getDate() - i));
 | 
			
		||||
		const day = new Date(new Date().setDate(new Date().getDate() - i));
 | 
			
		||||
 | 
			
		||||
		const data = datas.filter(d =>
 | 
			
		||||
			d.date.year == day.getFullYear() && d.date.month == day.getMonth() + 1 && d.date.day == day.getDate()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -51,7 +51,7 @@ module.exports = (params) => new Promise(async (res, rej) => {
 | 
			
		|||
	const graph = [];
 | 
			
		||||
 | 
			
		||||
	for (let i = 0; i < 30; i++) {
 | 
			
		||||
		let day = new Date(new Date().setDate(new Date().getDate() - i));
 | 
			
		||||
		const day = new Date(new Date().setDate(new Date().getDate() - i));
 | 
			
		||||
 | 
			
		||||
		const data = datas.filter(d =>
 | 
			
		||||
			d.date.year == day.getFullYear() && d.date.month == day.getMonth() + 1 && d.date.day == day.getDate()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -51,7 +51,7 @@ module.exports = (params) => new Promise(async (res, rej) => {
 | 
			
		|||
	const graph = [];
 | 
			
		||||
 | 
			
		||||
	for (let i = 0; i < 30; i++) {
 | 
			
		||||
		let day = new Date(new Date().setDate(new Date().getDate() - i));
 | 
			
		||||
		const day = new Date(new Date().setDate(new Date().getDate() - i));
 | 
			
		||||
 | 
			
		||||
		const data = datas.filter(d =>
 | 
			
		||||
			d.date.year == day.getFullYear() && d.date.month == day.getMonth() + 1 && d.date.day == day.getDate()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -86,7 +86,7 @@ module.exports = (params) => new Promise(async (res, rej) => {
 | 
			
		|||
	const graph = [];
 | 
			
		||||
 | 
			
		||||
	for (let i = 0; i < 365; i++) {
 | 
			
		||||
		let day = new Date(new Date().setDate(new Date().getDate() - i));
 | 
			
		||||
		const day = new Date(new Date().setDate(new Date().getDate() - i));
 | 
			
		||||
 | 
			
		||||
		const data = datas.filter(d =>
 | 
			
		||||
			d.date.year == day.getFullYear() && d.date.month == day.getMonth() + 1 && d.date.day == day.getDate()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -84,7 +84,7 @@ module.exports = (params) => new Promise(async (res, rej) => {
 | 
			
		|||
	const graph = [];
 | 
			
		||||
 | 
			
		||||
	for (let i = 0; i < 30; i++) {
 | 
			
		||||
		let day = new Date(new Date().setDate(new Date().getDate() - i));
 | 
			
		||||
		const day = new Date(new Date().setDate(new Date().getDate() - i));
 | 
			
		||||
 | 
			
		||||
		const data = datas.filter(d =>
 | 
			
		||||
			d.date.year == day.getFullYear() && d.date.month == day.getMonth() + 1 && d.date.day == day.getDate()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -56,7 +56,7 @@ module.exports = (params) => new Promise(async (res, rej) => {
 | 
			
		|||
	const graph = [];
 | 
			
		||||
 | 
			
		||||
	for (let i = 0; i < 30; i++) {
 | 
			
		||||
		let day = new Date(new Date().setDate(new Date().getDate() - i));
 | 
			
		||||
		const day = new Date(new Date().setDate(new Date().getDate() - i));
 | 
			
		||||
 | 
			
		||||
		const data = datas.filter(d =>
 | 
			
		||||
			d.date.year == day.getFullYear() && d.date.month == day.getMonth() + 1 && d.date.day == day.getDate()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -34,7 +34,7 @@ module.exports = (params, user, app, isSecure) => new Promise(async (res, rej) =
 | 
			
		|||
	const [value, valueError] = $(params.value).optional.string().$;
 | 
			
		||||
	if (valueError) return rej('invalid value param');
 | 
			
		||||
 | 
			
		||||
	let set = {};
 | 
			
		||||
	const set = {};
 | 
			
		||||
	if (data) {
 | 
			
		||||
		Object.entries(data).forEach(([k, v]) => {
 | 
			
		||||
			set[`data.${k}`] = v;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -36,9 +36,7 @@ module.exports = (params, user, app) => new Promise(async (res, rej) => {
 | 
			
		|||
		// Fetch files
 | 
			
		||||
		// forEach だと途中でエラーなどがあっても return できないので
 | 
			
		||||
		// 敢えて for を使っています。
 | 
			
		||||
		for (let i = 0; i < mediaIds.length; i++) {
 | 
			
		||||
			const mediaId = mediaIds[i];
 | 
			
		||||
 | 
			
		||||
		for (const mediaId of mediaIds) {
 | 
			
		||||
			// Fetch file
 | 
			
		||||
			// SELECT _id
 | 
			
		||||
			const entity = await DriveFile.findOne({
 | 
			
		||||
| 
						 | 
				
			
			@ -188,7 +186,7 @@ module.exports = (params, user, app) => new Promise(async (res, rej) => {
 | 
			
		|||
		}
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	let mentions = [];
 | 
			
		||||
	const mentions = [];
 | 
			
		||||
 | 
			
		||||
	function addMention(mentionee, type) {
 | 
			
		||||
		// Reject if already added
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -13,14 +13,6 @@ class MisskeyEvent {
 | 
			
		|||
			config.redis.port, config.redis.host);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	private publish(channel: string, type: string, value?: any): void {
 | 
			
		||||
		const message = value == null ?
 | 
			
		||||
			{ type: type } :
 | 
			
		||||
			{ type: type, body: value };
 | 
			
		||||
 | 
			
		||||
		this.redisClient.publish(`misskey:${channel}`, JSON.stringify(message));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public publishUserStream(userId: ID, type: string, value?: any): void {
 | 
			
		||||
		this.publish(`user-stream:${userId}`, type, typeof value === 'undefined' ? null : value);
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -32,6 +24,14 @@ class MisskeyEvent {
 | 
			
		|||
	public publishMessagingStream(userId: ID, otherpartyId: ID, type: string, value?: any): void {
 | 
			
		||||
		this.publish(`messaging-stream:${userId}-${otherpartyId}`, type, typeof value === 'undefined' ? null : value);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	private publish(channel: string, type: string, value?: any): void {
 | 
			
		||||
		const message = value == null ?
 | 
			
		||||
			{ type: type } :
 | 
			
		||||
			{ type: type, body: value };
 | 
			
		||||
 | 
			
		||||
		this.redisClient.publish(`misskey:${channel}`, JSON.stringify(message));
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const ev = new MisskeyEvent();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -22,7 +22,7 @@ export const path = process.env.NODE_ENV == 'test'
 | 
			
		|||
/**
 | 
			
		||||
 * ユーザーが設定する必要のある情報
 | 
			
		||||
 */
 | 
			
		||||
interface Source {
 | 
			
		||||
type Source = {
 | 
			
		||||
	maintainer: string;
 | 
			
		||||
	url: string;
 | 
			
		||||
	secondary_url: string;
 | 
			
		||||
| 
						 | 
				
			
			@ -68,12 +68,12 @@ interface Source {
 | 
			
		|||
		hook_secret: string;
 | 
			
		||||
		username: string;
 | 
			
		||||
	};
 | 
			
		||||
}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Misskeyが自動的に(ユーザーが設定した情報から推論して)設定する情報
 | 
			
		||||
 */
 | 
			
		||||
interface Mixin {
 | 
			
		||||
type Mixin = {
 | 
			
		||||
	host: string;
 | 
			
		||||
	scheme: string;
 | 
			
		||||
	secondary_host: string;
 | 
			
		||||
| 
						 | 
				
			
			@ -83,7 +83,7 @@ interface Mixin {
 | 
			
		|||
	about_url: string;
 | 
			
		||||
	dev_url: string;
 | 
			
		||||
	drive_url: string;
 | 
			
		||||
}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export type Config = Source & Mixin;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -87,7 +87,7 @@ async function init(): Promise<Config> {
 | 
			
		|||
	MachineInfo.show();
 | 
			
		||||
	new DependencyInfo().showAll();
 | 
			
		||||
 | 
			
		||||
	let configLogger = new Logger('Config');
 | 
			
		||||
	const configLogger = new Logger('Config');
 | 
			
		||||
	if (!fs.existsSync(configPath)) {
 | 
			
		||||
		throw 'Configuration not found - Please run "npm run config" command.';
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -109,7 +109,7 @@ async function init(): Promise<Config> {
 | 
			
		|||
	*/
 | 
			
		||||
 | 
			
		||||
	// Try to connect to MongoDB
 | 
			
		||||
	let mongoDBLogger = new Logger('MongoDB');
 | 
			
		||||
	const mongoDBLogger = new Logger('MongoDB');
 | 
			
		||||
	const db = require('./db/mongodb').default;
 | 
			
		||||
	mongoDBLogger.info('Successfully connected');
 | 
			
		||||
	db.close();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,19 +2,19 @@ import Logger from './logger';
 | 
			
		|||
import { execSync } from 'child_process';
 | 
			
		||||
 | 
			
		||||
export default class {
 | 
			
		||||
	logger: Logger;
 | 
			
		||||
	private logger: Logger;
 | 
			
		||||
 | 
			
		||||
	constructor() {
 | 
			
		||||
		this.logger = new Logger('Deps');
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	showAll(): void {
 | 
			
		||||
	public showAll(): void {
 | 
			
		||||
		this.show('MongoDB', 'mongo --version', x => x.match(/^MongoDB shell version:? (.*)\r?\n/));
 | 
			
		||||
		this.show('Redis', 'redis-server --version', x => x.match(/v=([0-9\.]*)/));
 | 
			
		||||
		this.show('GraphicsMagick', 'gm -version', x => x.match(/^GraphicsMagick ([0-9\.]*) .*/));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	show(serviceName: string, command: string, transform: (x: string) => RegExpMatchArray): void {
 | 
			
		||||
	public show(serviceName: string, command: string, transform: (x: string) => RegExpMatchArray): void {
 | 
			
		||||
		try {
 | 
			
		||||
			// ステータス0以外のときにexecSyncはstderrをコンソール上に出力してしまうので
 | 
			
		||||
			// プロセスからのstderrをすべて無視するように stdio オプションをセット
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,10 +1,11 @@
 | 
			
		|||
import Logger from './logger';
 | 
			
		||||
 | 
			
		||||
export default class {
 | 
			
		||||
	static show(): void {
 | 
			
		||||
	public static show(): void {
 | 
			
		||||
		const env = process.env.NODE_ENV;
 | 
			
		||||
		let logger = new Logger('Env');
 | 
			
		||||
		const logger = new Logger('Env');
 | 
			
		||||
		logger.info(typeof env == 'undefined' ? 'NODE_ENV is not set' : `NODE_ENV: ${env}`);
 | 
			
		||||
 | 
			
		||||
		if (env !== 'production') {
 | 
			
		||||
			logger.warn('The environment is not in production mode');
 | 
			
		||||
			logger.warn('Do not use for production purpose');
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,43 +11,43 @@ function toLevelColor(level: LogLevel): chalk.ChalkStyle {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
export default class Logger {
 | 
			
		||||
	domain: string;
 | 
			
		||||
 | 
			
		||||
	static log(level: LogLevel, message: string): void {
 | 
			
		||||
		let color = toLevelColor(level);
 | 
			
		||||
		let time = (new Date()).toLocaleTimeString('ja-JP');
 | 
			
		||||
		console.log(`[${time} ${color.bold(level.toUpperCase())}]: ${message}`);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	static error(message: string): void {
 | 
			
		||||
		Logger.log('Error', message);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	static warn(message: string): void {
 | 
			
		||||
		Logger.log('Warn', message);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	static info(message: string): void {
 | 
			
		||||
		Logger.log('Info', message);
 | 
			
		||||
	}
 | 
			
		||||
	private domain: string;
 | 
			
		||||
 | 
			
		||||
	constructor(domain: string) {
 | 
			
		||||
		this.domain = domain;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	log(level: LogLevel, message: string): void {
 | 
			
		||||
	public static log(level: LogLevel, message: string): void {
 | 
			
		||||
		const color = toLevelColor(level);
 | 
			
		||||
		const time = (new Date()).toLocaleTimeString('ja-JP');
 | 
			
		||||
		console.log(`[${time} ${color.bold(level.toUpperCase())}]: ${message}`);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public static error(message: string): void {
 | 
			
		||||
		Logger.log('Error', message);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public static warn(message: string): void {
 | 
			
		||||
		Logger.log('Warn', message);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public static info(message: string): void {
 | 
			
		||||
		Logger.log('Info', message);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public log(level: LogLevel, message: string): void {
 | 
			
		||||
		Logger.log(level, `[${this.domain}] ${message}`);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	error(message: string): void {
 | 
			
		||||
	public error(message: string): void {
 | 
			
		||||
		this.log('Error', message);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	warn(message: string): void {
 | 
			
		||||
	public warn(message: string): void {
 | 
			
		||||
		this.log('Warn', message);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	info(message: string): void {
 | 
			
		||||
	public info(message: string): void {
 | 
			
		||||
		this.log('Info', message);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,10 +2,10 @@ import * as os from 'os';
 | 
			
		|||
import Logger from './logger';
 | 
			
		||||
 | 
			
		||||
export default class {
 | 
			
		||||
	static show(): void {
 | 
			
		||||
	public static show(): void {
 | 
			
		||||
		const totalmem = (os.totalmem() / 1024 / 1024 / 1024).toFixed(1);
 | 
			
		||||
		const freemem = (os.freemem() / 1024 / 1024 / 1024).toFixed(1);
 | 
			
		||||
		let logger = new Logger('Machine');
 | 
			
		||||
		const logger = new Logger('Machine');
 | 
			
		||||
		logger.info(`Hostname: ${os.hostname()}`);
 | 
			
		||||
		logger.info(`Platform: ${process.platform}`);
 | 
			
		||||
		logger.info(`Architecture: ${process.arch}`);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										181
									
								
								tslint.json
									
										
									
									
									
								
							
							
						
						
									
										181
									
								
								tslint.json
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -1,153 +1,32 @@
 | 
			
		|||
{
 | 
			
		||||
  "rules": {
 | 
			
		||||
    // TypeScript Specific
 | 
			
		||||
    "ban-types": [
 | 
			
		||||
      true,
 | 
			
		||||
      [
 | 
			
		||||
        "Object"
 | 
			
		||||
      ]
 | 
			
		||||
    ],
 | 
			
		||||
    "member-access": false,
 | 
			
		||||
    "member-ordering": [
 | 
			
		||||
      true,
 | 
			
		||||
      "static-before-instance",
 | 
			
		||||
      "variables-before-functions"
 | 
			
		||||
    ],
 | 
			
		||||
    "no-any": false,
 | 
			
		||||
    "no-import-side-effect": true,
 | 
			
		||||
    "no-inferrable-types": false,
 | 
			
		||||
    "no-internal-module": false,
 | 
			
		||||
    "no-namespace": false,
 | 
			
		||||
    "no-non-null-assertion": true,
 | 
			
		||||
    "no-reference": true,
 | 
			
		||||
    "no-var-requires": false,
 | 
			
		||||
    "only-arrow-functions": false,
 | 
			
		||||
    "typedef": [
 | 
			
		||||
      true,
 | 
			
		||||
      "property-declaration"
 | 
			
		||||
    ],
 | 
			
		||||
    "typedef-whitespace": [
 | 
			
		||||
      true,
 | 
			
		||||
      {
 | 
			
		||||
        "call-signature": "nospace",
 | 
			
		||||
        "index-signature": "nospace",
 | 
			
		||||
        "parameter": "nospace",
 | 
			
		||||
        "property-declaration": "nospace",
 | 
			
		||||
        "variable-declaration": "nospace"
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
    // Functionality
 | 
			
		||||
    "ban": false,
 | 
			
		||||
    "curly": false,
 | 
			
		||||
    "forin": true,
 | 
			
		||||
    "label-position": true,
 | 
			
		||||
    "no-arg": true,
 | 
			
		||||
    "no-bitwise": true,
 | 
			
		||||
    "no-conditional-assignment": true,
 | 
			
		||||
    "no-console": [
 | 
			
		||||
      true,
 | 
			
		||||
      "debug",
 | 
			
		||||
      "info",
 | 
			
		||||
      "time",
 | 
			
		||||
      "timeEnd",
 | 
			
		||||
      "trace"
 | 
			
		||||
    ],
 | 
			
		||||
    "no-construct": true,
 | 
			
		||||
    "no-debugger": true,
 | 
			
		||||
    "no-duplicate-super": true,
 | 
			
		||||
    "no-duplicate-variable": true,
 | 
			
		||||
    "no-empty": true,
 | 
			
		||||
    "no-eval": false,
 | 
			
		||||
    "no-for-in-array": false,
 | 
			
		||||
    "no-invalid-this": [
 | 
			
		||||
      true,
 | 
			
		||||
      "check-function-in-method"
 | 
			
		||||
    ],
 | 
			
		||||
    "no-misused-new": true,
 | 
			
		||||
    "no-null-keyword": false,
 | 
			
		||||
    "no-shadowed-variable": false,
 | 
			
		||||
    "no-string-literal": false,
 | 
			
		||||
    "no-switch-case-fall-through": true,
 | 
			
		||||
    "no-unsafe-finally": true,
 | 
			
		||||
    "no-unused-expression": true,
 | 
			
		||||
    "no-use-before-declare": false,
 | 
			
		||||
    "no-var-keyword": true,
 | 
			
		||||
    "radix": true,
 | 
			
		||||
    "restrict-plus-operands": false,
 | 
			
		||||
    "switch-default": false,
 | 
			
		||||
    "triple-equals": [
 | 
			
		||||
      false,
 | 
			
		||||
      "allow-null-check",
 | 
			
		||||
      "allow-undefined-check"
 | 
			
		||||
    ],
 | 
			
		||||
    "use-isnan": true,
 | 
			
		||||
    // Maintainability
 | 
			
		||||
    "eofline": true,
 | 
			
		||||
    "indent": [
 | 
			
		||||
      true,
 | 
			
		||||
      "tabs"
 | 
			
		||||
    ],
 | 
			
		||||
    "linebreak-style": false,
 | 
			
		||||
    "max-file-line-count": false,
 | 
			
		||||
    "max-line-length": false,
 | 
			
		||||
    "no-default-export": false,
 | 
			
		||||
    "no-mergeable-namespace": true,
 | 
			
		||||
    "no-require-imports": false,
 | 
			
		||||
    "no-reference-import": true,
 | 
			
		||||
    "no-trailing-whitespace": true,
 | 
			
		||||
    "no-unnecessary-callback-wrapper": true,
 | 
			
		||||
    "no-unnecessary-initializer": true,
 | 
			
		||||
    "object-literal-sort-keys": false,
 | 
			
		||||
    "trailing-comma": true,
 | 
			
		||||
    // Style
 | 
			
		||||
    "align": [
 | 
			
		||||
      true,
 | 
			
		||||
      "parameters",
 | 
			
		||||
      "statements"
 | 
			
		||||
    ],
 | 
			
		||||
    "arrow-parens": false,
 | 
			
		||||
    "arrow-return-shorthand": true,
 | 
			
		||||
    "class-name": true,
 | 
			
		||||
    "comment-format": [
 | 
			
		||||
      true,
 | 
			
		||||
      "check-space"
 | 
			
		||||
    ],
 | 
			
		||||
    "interface-name": false,
 | 
			
		||||
    "jsdoc-format": true,
 | 
			
		||||
    "match-default-export-name": false,
 | 
			
		||||
    "newline-before-return": false,
 | 
			
		||||
    "new-parens": true,
 | 
			
		||||
    "no-angle-bracket-type-assertion": true,
 | 
			
		||||
    "no-consecutive-blank-lines": true,
 | 
			
		||||
    "object-literal-key-quotes": false,
 | 
			
		||||
    "one-line": [
 | 
			
		||||
      true,
 | 
			
		||||
      "check-catch",
 | 
			
		||||
      "check-finally",
 | 
			
		||||
      "check-else",
 | 
			
		||||
      "check-open-brace",
 | 
			
		||||
      "check-whitespace"
 | 
			
		||||
    ],
 | 
			
		||||
    "one-variable-per-declaration": true,
 | 
			
		||||
    "ordered-imports": false,
 | 
			
		||||
    "prefer-function-over-method": true,
 | 
			
		||||
    "prefer-method-signature": true,
 | 
			
		||||
    "prefer-template": true,
 | 
			
		||||
    "quotemark": [
 | 
			
		||||
      true,
 | 
			
		||||
      "single",
 | 
			
		||||
      "avoid-escape"
 | 
			
		||||
    ],
 | 
			
		||||
    "semicolon": true,
 | 
			
		||||
    "variable-name": false,
 | 
			
		||||
    "whitespace": [
 | 
			
		||||
      true,
 | 
			
		||||
      "check-branch",
 | 
			
		||||
      "check-decl",
 | 
			
		||||
      "check-operator",
 | 
			
		||||
      "check-separator",
 | 
			
		||||
      "check-type",
 | 
			
		||||
      "check-preblock"
 | 
			
		||||
    ]
 | 
			
		||||
  }
 | 
			
		||||
	"defaultSeverity": "error",
 | 
			
		||||
	"extends": [
 | 
			
		||||
		"tslint:recommended"
 | 
			
		||||
	],
 | 
			
		||||
	"jsRules": {},
 | 
			
		||||
	"rules": {
 | 
			
		||||
		"indent": ["tab"],
 | 
			
		||||
		"quotemark": ["single"],
 | 
			
		||||
		"no-var-requires": false,
 | 
			
		||||
		"no-string-throw": false,
 | 
			
		||||
		"trailing-comma": [false],
 | 
			
		||||
		"object-literal-sort-keys": false,
 | 
			
		||||
		"curly": false,
 | 
			
		||||
		"no-console": [false],
 | 
			
		||||
		"ordered-imports": [false],
 | 
			
		||||
		"arrow-parens": false,
 | 
			
		||||
		"object-literal-shorthand": false,
 | 
			
		||||
		"triple-equals": [false],
 | 
			
		||||
		"no-shadowed-variable": false,
 | 
			
		||||
		"no-string-literal": false,
 | 
			
		||||
		"variable-name": [false],
 | 
			
		||||
		"comment-format": [false],
 | 
			
		||||
		"interface-over-type-literal": false,
 | 
			
		||||
		"max-line-length": [false],
 | 
			
		||||
		"member-ordering": [false],
 | 
			
		||||
		"ban-types": [
 | 
			
		||||
			"Object"
 | 
			
		||||
		]
 | 
			
		||||
	},
 | 
			
		||||
	"rulesDirectory": []
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue