From e9736aa7104a95815e7ad08fb6c2a0fb0a7d158e Mon Sep 17 00:00:00 2001 From: mcasimir Date: Wed, 8 Sep 2021 14:56:50 +0200 Subject: [PATCH 1/2] chore: make eslint work with vscode --- config/eslintrc.base.js | 82 ++++++++++--------- packages/async-rewriter2/.eslintrc.js | 9 +- packages/autocomplete/.eslintrc.js | 9 +- packages/browser-repl/.eslintrc.js | 9 +- packages/browser-runtime-core/.eslintrc.js | 9 +- .../browser-runtime-electron/.eslintrc.js | 9 +- packages/build/.eslintrc.js | 9 +- packages/cli-repl/.eslintrc.js | 9 +- packages/errors/.eslintrc.js | 9 +- packages/history/.eslintrc.js | 9 +- packages/i18n/.eslintrc.js | 9 +- .../node-runtime-worker-thread/.eslintrc.js | 9 +- packages/service-provider-core/.eslintrc.js | 9 +- packages/service-provider-server/.eslintrc.js | 9 +- packages/shell-api/.eslintrc.js | 9 +- packages/shell-evaluator/.eslintrc.js | 9 +- packages/snippet-manager/.eslintrc.js | 9 +- packages/types/.eslintrc.js | 9 +- 18 files changed, 179 insertions(+), 56 deletions(-) diff --git a/config/eslintrc.base.js b/config/eslintrc.base.js index 01def02eeb..6f540608b7 100644 --- a/config/eslintrc.base.js +++ b/config/eslintrc.base.js @@ -1,49 +1,53 @@ -const typescriptEslintEslintPlugin = require('@typescript-eslint/eslint-plugin'); +const jsRules = { + 'object-curly-spacing': [2, 'always'], + 'no-empty-function': 0, + 'valid-jsdoc': 0, + 'react/sort-comp': 0, // does not seem work as expected with typescript + 'mocha/no-skipped-tests': 1, + 'mocha/no-exclusive-tests': 2, + 'semi': [2, 'always'], + 'no-console': [1, { allow: ['warn', 'error', 'info'] }], + 'no-shadow': 0, + 'no-use-before-define': 0, + 'no-cond-assign': [2, 'except-parens'] +} -// ovrerrides do not work with extends -const ruleOverridesForJs = Object.keys(typescriptEslintEslintPlugin.rules).reduce( - (overrides, rule) => ({ ...overrides, [`@typescript-eslint/${rule}`]: 0 }), {} -); +const tsRules = { + '@typescript-eslint/no-empty-function': 0, + '@typescript-eslint/no-use-before-define': 0, + '@typescript-eslint/no-explicit-any': 0, + '@typescript-eslint/no-var-requires': 0, // seems necessary to import less files + '@typescript-eslint/no-unused-vars': 2, + '@typescript-eslint/no-floating-promises': 2, + '@typescript-eslint/await-thenable': 2, + '@typescript-eslint/require-await': 2, + '@typescript-eslint/explicit-module-boundary-types': 0, + '@typescript-eslint/ban-types': 0, + 'semi': 0, + '@typescript-eslint/semi': [2, 'always'] +}; module.exports = { plugins: ['mocha'], - parser: '@typescript-eslint/parser', - parserOptions: { - project: './tsconfig.lint.json' - }, - extends: [ - 'eslint-config-mongodb-js/react', - 'plugin:@typescript-eslint/recommended' - ], - rules: { - 'object-curly-spacing': [2, 'always'], - 'no-empty-function': 0, - 'valid-jsdoc': 0, - 'react/sort-comp': 0, // does not seem work as expected with typescript - '@typescript-eslint/no-empty-function': 0, - '@typescript-eslint/no-use-before-define': 0, - '@typescript-eslint/no-explicit-any': 0, - '@typescript-eslint/no-var-requires': 0, // seems necessary to import less files - '@typescript-eslint/no-unused-vars': 2, - '@typescript-eslint/no-floating-promises': 2, - '@typescript-eslint/await-thenable': 2, - '@typescript-eslint/require-await': 2, - '@typescript-eslint/explicit-module-boundary-types': 0, - '@typescript-eslint/ban-types': 0, - 'mocha/no-skipped-tests': 1, - 'mocha/no-exclusive-tests': 2, - 'semi': 0, - '@typescript-eslint/semi': [2, 'always'], - 'no-console': [1, { allow: ['warn', 'error', 'info'] }], - 'no-shadow': 0, - 'no-use-before-define': 0, - 'no-cond-assign': [2, 'except-parens'] - }, overrides: [{ files: ['**/*.js'], + extends: [ + 'eslint-config-mongodb-js/react' + ], + rules: { + ...jsRules + } + }, + { + files: ['**/*.ts'], + parser: '@typescript-eslint/parser', + extends: [ + 'eslint-config-mongodb-js/react', + 'plugin:@typescript-eslint/recommended' + ], rules: { - ...ruleOverridesForJs, - semi: [2, 'always'] + ...jsRules, + ...tsRules } }] }; diff --git a/packages/async-rewriter2/.eslintrc.js b/packages/async-rewriter2/.eslintrc.js index 4a958b44bd..cfead3afb4 100644 --- a/packages/async-rewriter2/.eslintrc.js +++ b/packages/async-rewriter2/.eslintrc.js @@ -1 +1,8 @@ -module.exports = require('../../config/eslintrc.base'); +module.exports = { + ...require('../../config/eslintrc.base'), + root: true, + parserOptions: { + tsconfigRootDir: __dirname, + project: './tsconfig.lint.json' + } +}; diff --git a/packages/autocomplete/.eslintrc.js b/packages/autocomplete/.eslintrc.js index adb60be8a3..cfead3afb4 100644 --- a/packages/autocomplete/.eslintrc.js +++ b/packages/autocomplete/.eslintrc.js @@ -1 +1,8 @@ -module.exports = require('../../config/eslintrc.base'); \ No newline at end of file +module.exports = { + ...require('../../config/eslintrc.base'), + root: true, + parserOptions: { + tsconfigRootDir: __dirname, + project: './tsconfig.lint.json' + } +}; diff --git a/packages/browser-repl/.eslintrc.js b/packages/browser-repl/.eslintrc.js index 4a958b44bd..cfead3afb4 100644 --- a/packages/browser-repl/.eslintrc.js +++ b/packages/browser-repl/.eslintrc.js @@ -1 +1,8 @@ -module.exports = require('../../config/eslintrc.base'); +module.exports = { + ...require('../../config/eslintrc.base'), + root: true, + parserOptions: { + tsconfigRootDir: __dirname, + project: './tsconfig.lint.json' + } +}; diff --git a/packages/browser-runtime-core/.eslintrc.js b/packages/browser-runtime-core/.eslintrc.js index 4a958b44bd..cfead3afb4 100644 --- a/packages/browser-runtime-core/.eslintrc.js +++ b/packages/browser-runtime-core/.eslintrc.js @@ -1 +1,8 @@ -module.exports = require('../../config/eslintrc.base'); +module.exports = { + ...require('../../config/eslintrc.base'), + root: true, + parserOptions: { + tsconfigRootDir: __dirname, + project: './tsconfig.lint.json' + } +}; diff --git a/packages/browser-runtime-electron/.eslintrc.js b/packages/browser-runtime-electron/.eslintrc.js index 4a958b44bd..cfead3afb4 100644 --- a/packages/browser-runtime-electron/.eslintrc.js +++ b/packages/browser-runtime-electron/.eslintrc.js @@ -1 +1,8 @@ -module.exports = require('../../config/eslintrc.base'); +module.exports = { + ...require('../../config/eslintrc.base'), + root: true, + parserOptions: { + tsconfigRootDir: __dirname, + project: './tsconfig.lint.json' + } +}; diff --git a/packages/build/.eslintrc.js b/packages/build/.eslintrc.js index 4a958b44bd..cfead3afb4 100644 --- a/packages/build/.eslintrc.js +++ b/packages/build/.eslintrc.js @@ -1 +1,8 @@ -module.exports = require('../../config/eslintrc.base'); +module.exports = { + ...require('../../config/eslintrc.base'), + root: true, + parserOptions: { + tsconfigRootDir: __dirname, + project: './tsconfig.lint.json' + } +}; diff --git a/packages/cli-repl/.eslintrc.js b/packages/cli-repl/.eslintrc.js index 4a958b44bd..cfead3afb4 100644 --- a/packages/cli-repl/.eslintrc.js +++ b/packages/cli-repl/.eslintrc.js @@ -1 +1,8 @@ -module.exports = require('../../config/eslintrc.base'); +module.exports = { + ...require('../../config/eslintrc.base'), + root: true, + parserOptions: { + tsconfigRootDir: __dirname, + project: './tsconfig.lint.json' + } +}; diff --git a/packages/errors/.eslintrc.js b/packages/errors/.eslintrc.js index 4a958b44bd..cfead3afb4 100644 --- a/packages/errors/.eslintrc.js +++ b/packages/errors/.eslintrc.js @@ -1 +1,8 @@ -module.exports = require('../../config/eslintrc.base'); +module.exports = { + ...require('../../config/eslintrc.base'), + root: true, + parserOptions: { + tsconfigRootDir: __dirname, + project: './tsconfig.lint.json' + } +}; diff --git a/packages/history/.eslintrc.js b/packages/history/.eslintrc.js index 4a958b44bd..cfead3afb4 100644 --- a/packages/history/.eslintrc.js +++ b/packages/history/.eslintrc.js @@ -1 +1,8 @@ -module.exports = require('../../config/eslintrc.base'); +module.exports = { + ...require('../../config/eslintrc.base'), + root: true, + parserOptions: { + tsconfigRootDir: __dirname, + project: './tsconfig.lint.json' + } +}; diff --git a/packages/i18n/.eslintrc.js b/packages/i18n/.eslintrc.js index 4a958b44bd..cfead3afb4 100644 --- a/packages/i18n/.eslintrc.js +++ b/packages/i18n/.eslintrc.js @@ -1 +1,8 @@ -module.exports = require('../../config/eslintrc.base'); +module.exports = { + ...require('../../config/eslintrc.base'), + root: true, + parserOptions: { + tsconfigRootDir: __dirname, + project: './tsconfig.lint.json' + } +}; diff --git a/packages/node-runtime-worker-thread/.eslintrc.js b/packages/node-runtime-worker-thread/.eslintrc.js index adb60be8a3..cfead3afb4 100644 --- a/packages/node-runtime-worker-thread/.eslintrc.js +++ b/packages/node-runtime-worker-thread/.eslintrc.js @@ -1 +1,8 @@ -module.exports = require('../../config/eslintrc.base'); \ No newline at end of file +module.exports = { + ...require('../../config/eslintrc.base'), + root: true, + parserOptions: { + tsconfigRootDir: __dirname, + project: './tsconfig.lint.json' + } +}; diff --git a/packages/service-provider-core/.eslintrc.js b/packages/service-provider-core/.eslintrc.js index 4a958b44bd..cfead3afb4 100644 --- a/packages/service-provider-core/.eslintrc.js +++ b/packages/service-provider-core/.eslintrc.js @@ -1 +1,8 @@ -module.exports = require('../../config/eslintrc.base'); +module.exports = { + ...require('../../config/eslintrc.base'), + root: true, + parserOptions: { + tsconfigRootDir: __dirname, + project: './tsconfig.lint.json' + } +}; diff --git a/packages/service-provider-server/.eslintrc.js b/packages/service-provider-server/.eslintrc.js index 4a958b44bd..cfead3afb4 100644 --- a/packages/service-provider-server/.eslintrc.js +++ b/packages/service-provider-server/.eslintrc.js @@ -1 +1,8 @@ -module.exports = require('../../config/eslintrc.base'); +module.exports = { + ...require('../../config/eslintrc.base'), + root: true, + parserOptions: { + tsconfigRootDir: __dirname, + project: './tsconfig.lint.json' + } +}; diff --git a/packages/shell-api/.eslintrc.js b/packages/shell-api/.eslintrc.js index 4a958b44bd..cfead3afb4 100644 --- a/packages/shell-api/.eslintrc.js +++ b/packages/shell-api/.eslintrc.js @@ -1 +1,8 @@ -module.exports = require('../../config/eslintrc.base'); +module.exports = { + ...require('../../config/eslintrc.base'), + root: true, + parserOptions: { + tsconfigRootDir: __dirname, + project: './tsconfig.lint.json' + } +}; diff --git a/packages/shell-evaluator/.eslintrc.js b/packages/shell-evaluator/.eslintrc.js index 4a958b44bd..cfead3afb4 100644 --- a/packages/shell-evaluator/.eslintrc.js +++ b/packages/shell-evaluator/.eslintrc.js @@ -1 +1,8 @@ -module.exports = require('../../config/eslintrc.base'); +module.exports = { + ...require('../../config/eslintrc.base'), + root: true, + parserOptions: { + tsconfigRootDir: __dirname, + project: './tsconfig.lint.json' + } +}; diff --git a/packages/snippet-manager/.eslintrc.js b/packages/snippet-manager/.eslintrc.js index 4a958b44bd..cfead3afb4 100644 --- a/packages/snippet-manager/.eslintrc.js +++ b/packages/snippet-manager/.eslintrc.js @@ -1 +1,8 @@ -module.exports = require('../../config/eslintrc.base'); +module.exports = { + ...require('../../config/eslintrc.base'), + root: true, + parserOptions: { + tsconfigRootDir: __dirname, + project: './tsconfig.lint.json' + } +}; diff --git a/packages/types/.eslintrc.js b/packages/types/.eslintrc.js index 4a958b44bd..cfead3afb4 100644 --- a/packages/types/.eslintrc.js +++ b/packages/types/.eslintrc.js @@ -1 +1,8 @@ -module.exports = require('../../config/eslintrc.base'); +module.exports = { + ...require('../../config/eslintrc.base'), + root: true, + parserOptions: { + tsconfigRootDir: __dirname, + project: './tsconfig.lint.json' + } +}; From c9feac4e526b5107548d7b8e1727d2055a563152 Mon Sep 17 00:00:00 2001 From: mcasimir Date: Wed, 8 Sep 2021 14:58:27 +0200 Subject: [PATCH 2/2] chore: add jsx,tsx --- config/eslintrc.base.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/eslintrc.base.js b/config/eslintrc.base.js index 6f540608b7..3f65d4967c 100644 --- a/config/eslintrc.base.js +++ b/config/eslintrc.base.js @@ -30,7 +30,7 @@ const tsRules = { module.exports = { plugins: ['mocha'], overrides: [{ - files: ['**/*.js'], + files: ['**/*.js', '**/*.jsx'], extends: [ 'eslint-config-mongodb-js/react' ], @@ -39,7 +39,7 @@ module.exports = { } }, { - files: ['**/*.ts'], + files: ['**/*.ts', '**/*.tsx'], parser: '@typescript-eslint/parser', extends: [ 'eslint-config-mongodb-js/react',