From 935509b9ea369c4fcd6e97b1ade80786a5f8469c Mon Sep 17 00:00:00 2001 From: Resi Respati Date: Fri, 24 Jul 2020 15:37:18 +0700 Subject: [PATCH] upgrade parser, reduce redundant ESLint rules This attempts to reduce the amount of redundant ESLint rules we currently have. It also upgrades the ESLint TypeScript parser to a newer version (3.7.0). --- .eslintrc.js | 47 ++-------------------------------------- package.json | 12 +++++----- src/utils/ErrorMapper.ts | 4 ++-- 3 files changed, 10 insertions(+), 53 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index a676e46..8d5e6f4 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -5,10 +5,11 @@ module.exports = { node: true }, extends: [ + "eslint:recommended", "plugin:@typescript-eslint/recommended", "plugin:@typescript-eslint/recommended-requiring-type-checking", - "prettier/@typescript-eslint", "plugin:prettier/recommended", + "prettier/@typescript-eslint", "plugin:import/errors", "plugin:import/warnings", "plugin:import/typescript" @@ -28,9 +29,7 @@ module.exports = { } }, rules: { - "@typescript-eslint/adjacent-overload-signatures": "error", "@typescript-eslint/array-type": "error", - "@typescript-eslint/ban-types": "error", "@typescript-eslint/consistent-type-assertions": "error", "@typescript-eslint/consistent-type-definitions": "error", "@typescript-eslint/explicit-function-return-type": "off", @@ -40,46 +39,16 @@ module.exports = { accessibility: "explicit" } ], - "@typescript-eslint/indent": "off", - "@typescript-eslint/member-delimiter-style": [ - "off", - { - multiline: { - delimiter: "none", - requireLast: true - }, - singleline: { - delimiter: "semi", - requireLast: false - } - } - ], - "@typescript-eslint/member-ordering": "off", - "@typescript-eslint/no-empty-function": "error", - "@typescript-eslint/no-empty-interface": "error", "@typescript-eslint/no-explicit-any": "off", - "@typescript-eslint/no-misused-new": "error", - "@typescript-eslint/no-namespace": "error", "@typescript-eslint/no-parameter-properties": "off", "@typescript-eslint/no-unused-expressions": "error", "@typescript-eslint/no-use-before-define": ["error", { functions: false }], - "@typescript-eslint/no-var-requires": "error", "@typescript-eslint/prefer-for-of": "error", - "@typescript-eslint/prefer-function-type": "error", - "@typescript-eslint/prefer-namespace-keyword": "error", - "@typescript-eslint/quotes": "off", - "@typescript-eslint/semi": ["off", null], "@typescript-eslint/space-within-parens": ["off", "never"], - "@typescript-eslint/triple-slash-reference": "error", - "@typescript-eslint/type-annotation-spacing": "off", "@typescript-eslint/unified-signatures": "error", - "arrow-body-style": "error", "arrow-parens": ["off", "as-needed"], camelcase: "error", - "comma-dangle": "off", complexity: "off", - "constructor-super": "error", - curly: "error", "dot-notation": "error", "eol-last": "off", eqeqeq: ["error", "smart"], @@ -88,20 +57,14 @@ module.exports = { "id-match": "error", "linebreak-style": "off", "max-classes-per-file": ["error", 1], - "max-len": "off", "new-parens": "off", "newline-per-chained-call": "off", "no-bitwise": "error", "no-caller": "error", "no-cond-assign": "error", "no-console": "off", - "no-debugger": "error", - "no-empty": "error", "no-eval": "error", - "no-extra-semi": "off", - "no-fallthrough": "off", "no-invalid-this": "off", - "no-irregular-whitespace": "off", "no-multiple-empty-lines": "off", "no-new-wrappers": "error", "no-shadow": [ @@ -114,18 +77,12 @@ module.exports = { "no-trailing-spaces": "off", "no-undef-init": "error", "no-underscore-dangle": "warn", - "no-unsafe-finally": "error", - "no-unused-labels": "error", "no-var": "error", "object-shorthand": "error", "one-var": ["error", "never"], - "prefer-const": "error", "quote-props": "off", radix: "error", "sort-imports": "warn", - "space-before-function-paren": "off", "spaced-comment": "error", - "use-isnan": "error", - "valid-typeof": "off" } }; diff --git a/package.json b/package.json index c9e372e..f93c450 100644 --- a/package.json +++ b/package.json @@ -41,15 +41,15 @@ "@types/screeps": "^3.1.0", "@types/sinon": "^5.0.5", "@types/sinon-chai": "^3.2.0", - "@typescript-eslint/eslint-plugin": "^3.6.1", - "@typescript-eslint/parser": "^3.6.1", - "@typescript-eslint/typescript-estree": "^3.6.1", + "@typescript-eslint/eslint-plugin": "^3.7.0", + "@typescript-eslint/parser": "^3.7.0", + "@typescript-eslint/typescript-estree": "^3.7.0", "chai": "^4.2.0", - "eslint": "^6.6.0", - "eslint-config-prettier": "^6.5.0", + "eslint": "^6.8.0", + "eslint-config-prettier": "^6.11.0", "eslint-import-resolver-typescript": "^2.0.0", "eslint-plugin-import": "^2.22.0", - "eslint-plugin-prettier": "^3.1.1", + "eslint-plugin-prettier": "^3.1.4", "lodash": "^3.10.1", "mocha": "^5.2.0", "prettier": "^2.0.4", diff --git a/src/utils/ErrorMapper.ts b/src/utils/ErrorMapper.ts index 9702213..119a395 100644 --- a/src/utils/ErrorMapper.ts +++ b/src/utils/ErrorMapper.ts @@ -1,4 +1,3 @@ -// tslint:disable:no-conditional-assignment import { SourceMapConsumer } from "source-map"; export class ErrorMapper { @@ -27,10 +26,11 @@ export class ErrorMapper { */ public static sourceMappedStackTrace(error: Error | string): string { const stack: string = error instanceof Error ? (error.stack as string) : error; - if (this.cache.hasOwnProperty(stack)) { + if (Object.prototype.hasOwnProperty.call(this.cache, stack)) { return this.cache[stack]; } + // eslint-disable-next-line no-useless-escape const re = /^\s+at\s+(.+?\s+)?\(?([0-z._\-\\\/]+):(\d+):(\d+)\)?$/gm; let match: RegExpExecArray | null; let outStack = error.toString();