diff --git a/configurations/auto.js b/configurations/auto.js index 2d83851..4373610 100644 --- a/configurations/auto.js +++ b/configurations/auto.js @@ -1,6 +1,6 @@ module.exports = [ - require('./canonical').recommended, require('./typescript').recommended, + require('./canonical').recommended, require('./typescript-compatibility').recommended, require('./regexp').recommended, require('./jsdoc').recommended, diff --git a/configurations/canonical.js b/configurations/canonical.js index 86ed1d6..9fcdd13 100644 --- a/configurations/canonical.js +++ b/configurations/canonical.js @@ -204,22 +204,7 @@ const unicornRules = { }; module.exports.recommended = { - languageOptions: { - parser: require('@babel/eslint-parser'), - parserOptions: { - babelOptions: { - plugins: ['@babel/plugin-syntax-import-assertions'], - }, - ecmaFeatures: { - globalReturn: false, - impliedStrict: true, - jsx: true, - }, - ecmaVersion: 2_021, - requireConfigFile: false, - sourceType: 'module', - }, - }, + files: ['**/*.{js,jsx,cjs,mjs,ts,tsx}'], plugins: { '@babel': require('@babel/eslint-plugin'), canonical: require('eslint-plugin-canonical'), diff --git a/configurations/graphql.js b/configurations/graphql.js index 72256d2..7fccdee 100644 --- a/configurations/graphql.js +++ b/configurations/graphql.js @@ -1,5 +1,5 @@ module.exports.recommended = { - files: ['*.graphql'], + files: ['**/*.graphql'], languageOptions: { parser: require('@graphql-eslint/eslint-plugin'), }, diff --git a/configurations/jsdoc.js b/configurations/jsdoc.js index f1a481e..a2ebeab 100644 --- a/configurations/jsdoc.js +++ b/configurations/jsdoc.js @@ -1,4 +1,5 @@ module.exports.recommended = { + files: ['**/*.{js,jsx,cjs,mjs,ts,tsx}'], plugins: { jsdoc: require('eslint-plugin-jsdoc'), }, diff --git a/configurations/json.js b/configurations/json.js index 6d94b82..6b84f10 100644 --- a/configurations/json.js +++ b/configurations/json.js @@ -1,5 +1,5 @@ module.exports.recommended = { - files: ['*.json'], + files: ['**/*.json'], languageOptions: { parser: require('eslint-plugin-jsonc'), }, diff --git a/configurations/prettier.js b/configurations/prettier.js index 602d472..93495a2 100644 --- a/configurations/prettier.js +++ b/configurations/prettier.js @@ -1,8 +1,10 @@ module.exports.recommended = { + files: ['**/*.{js,jsx,cjs,mjs,ts,tsx}'], plugins: { prettier: require('eslint-plugin-prettier'), }, rules: { + ...require('eslint-config-prettier').rules, '@babel/object-curly-spacing': 0, '@typescript-eslint/indent': 0, 'array-bracket-newline': 0, diff --git a/configurations/react.js b/configurations/react.js index a594b50..28fdb0a 100644 --- a/configurations/react.js +++ b/configurations/react.js @@ -1,4 +1,5 @@ module.exports.recommended = { + files: ['**/*.tsx'], plugins: { canonical: require('eslint-plugin-canonical'), react: require('eslint-plugin-react'), @@ -50,7 +51,7 @@ module.exports.recommended = { 'react/jsx-equals-spacing': [2, 'never'], 'react/jsx-filename-extension': 0, 'react/jsx-first-prop-new-line': [2, 'multiline-multiprop'], - 'react/jsx-fragments': [2, 'syntax'], + // 'react/jsx-fragments': [2, 'syntax'], 'react/jsx-handler-names': [ 2, { @@ -99,7 +100,7 @@ module.exports.recommended = { 'react/jsx-no-literals': 0, 'react/jsx-no-script-url': 2, 'react/jsx-no-target-blank': 2, - 'react/jsx-no-undef': 2, + // 'react/jsx-no-undef': 2, 'react/jsx-no-useless-fragment': [ 2, { @@ -142,8 +143,8 @@ module.exports.recommended = { closingSlash: 'never', }, ], - 'react/jsx-uses-react': 2, - 'react/jsx-uses-vars': 2, + // 'react/jsx-uses-react': 2, + // 'react/jsx-uses-vars': 2, 'react/jsx-wrap-multilines': 0, // TODO broke after upgrading to ESLint v9 // 'react/no-access-state-in-setstate': 2, @@ -153,7 +154,7 @@ module.exports.recommended = { // 'react/no-arrow-function-lifecycle': 2, // 'react/no-children-prop': 2, 'react/no-danger': 2, - 'react/no-danger-with-children': 2, + // 'react/no-danger-with-children': 2, 'react/no-deprecated': 2, 'react/no-did-mount-set-state': 2, 'react/no-did-update-set-state': 2, @@ -163,7 +164,7 @@ module.exports.recommended = { 'react/no-invalid-html-attribute': 2, 'react/no-is-mounted': 2, 'react/no-multi-comp': 0, - 'react/no-namespace': 2, + // 'react/no-namespace': 2, 'react/no-redundant-should-component-update': 2, 'react/no-render-return-value': 2, // TODO broke after upgrading to ESLint v9 @@ -205,8 +206,8 @@ module.exports.recommended = { 'react/state-in-constructor': [2, 'always'], // TODO broke after upgrading to ESLint v9 // 'react/static-property-placement': 2, - 'react/style-prop-object': 2, - 'react/void-dom-elements-no-children': 2, + // 'react/style-prop-object': 2, + // 'react/void-dom-elements-no-children': 2, 'react-hooks/exhaustive-deps': 2, 'react-hooks/rules-of-hooks': 2, }, diff --git a/configurations/regexp.js b/configurations/regexp.js index a797a03..8a8d5fc 100644 --- a/configurations/regexp.js +++ b/configurations/regexp.js @@ -2,6 +2,7 @@ * https://github.com/ota-meshi/eslint-plugin-regexp/blob/master/lib/configs/recommended.ts */ module.exports.recommended = { + files: ['**/*.{js,jsx,cjs,mjs,ts,tsx}'], plugins: { regexp: require('eslint-plugin-regexp'), }, diff --git a/configurations/typescript-compatibility.js b/configurations/typescript-compatibility.js index 8a329f8..1e19eb3 100644 --- a/configurations/typescript-compatibility.js +++ b/configurations/typescript-compatibility.js @@ -1,5 +1,5 @@ module.exports.recommended = { - files: ['*.ts', '*.tsx'], + files: ['*.{ts,tsx}'], rules: { '@babel/no-unused-expressions': 0, '@typescript-eslint/brace-style': [ diff --git a/configurations/typescript.js b/configurations/typescript.js index 2b1b6ef..8671df6 100644 --- a/configurations/typescript.js +++ b/configurations/typescript.js @@ -1,9 +1,3 @@ -// Omit `.d.ts` because 1) TypeScript compilation already confirms that -// types are resolved, and 2) it would mask an unresolved - -// `.ts`/`.tsx`/`.js`/`.jsx` implementation. -const typescriptExtensions = ['.ts', '.tsx', '.js', '.jsx']; - // TODO add .d.ts files // { // files: ['*.d.ts'], @@ -17,12 +11,16 @@ const typescriptExtensions = ['.ts', '.tsx', '.js', '.jsx']; // } module.exports.recommended = { - files: ['*.ts', '*.tsx'], + files: ['**/*.{ts,tsx}'], languageOptions: { parser: require('@typescript-eslint/parser'), + parserOptions: { + project: true, + }, }, plugins: { '@typescript-eslint': require('@typescript-eslint/eslint-plugin'), + canonical: require('eslint-plugin-canonical'), 'typescript-sort-keys': require('eslint-plugin-typescript-sort-keys'), }, rules: { @@ -202,14 +200,14 @@ module.exports.recommended = { 'typescript-sort-keys/string-enum': 2, }, settings: { - 'import/extensions': typescriptExtensions, + 'import/extensions': ['.ts', '.tsx'], 'import/external-module-folders': ['node_modules', 'node_modules/@types'], 'import/parsers': { '@typescript-eslint/parser': ['.ts', '.tsx'], }, 'import/resolver': { typescript: { - extensions: typescriptExtensions, + extensions: ['.ts', '.tsx'], }, }, jsdoc: { diff --git a/configurations/yaml.js b/configurations/yaml.js index 6611bd0..efe6255 100644 --- a/configurations/yaml.js +++ b/configurations/yaml.js @@ -1,5 +1,5 @@ module.exports.recommended = { - files: ['*.yaml'], + files: ['**/*.yaml'], languageOptions: { parser: require('yaml-eslint-parser'), },