diff --git a/.gitignore b/.gitignore index e5db728b..642ad460 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,6 @@ node_modules/ npm-debug.log yarn.lock .eslintcache + +# eslint-remote-tester +eslint-remote-tester-results diff --git a/eslint-remote-tester.config.js b/eslint-remote-tester.config.js new file mode 100644 index 00000000..f9d44f69 --- /dev/null +++ b/eslint-remote-tester.config.js @@ -0,0 +1,55 @@ +'use strict'; + +/** @type {import('eslint-remote-tester').Config} */ +module.exports = { + /** Repositories to scan */ + repositories: [ + // A few dozen top ESLint plugins. + 'Intellicode/eslint-plugin-react-native', + 'JoshuaKGoldberg/eslint-plugin-expect-type', + 'SonarSource/eslint-plugin-sonarjs', + 'avajs/eslint-plugin-ava', + 'cypress-io/eslint-plugin-cypress', + 'dangreenisrael/eslint-plugin-jest-formatting', + 'ember-cli/eslint-plugin-ember', + 'emberjs/eslint-plugin-ember-internal', + 'eslint-community/eslint-plugin-eslint-plugin', + 'eslint-community/eslint-plugin-n', + 'eslint-community/eslint-plugin-promise', + 'eslint-community/eslint-plugin-security', + 'eslint-functional/eslint-plugin-functional', + 'eslint/eslint', + 'import-js/eslint-plugin-import', + 'jest-community/eslint-plugin-jest', + 'jest-community/eslint-plugin-jest-extended', + 'jsx-eslint/eslint-plugin-jsx-a11y', + 'jsx-eslint/eslint-plugin-react', + 'lo1tuma/eslint-plugin-mocha', + 'ota-meshi/eslint-plugin-regexp', + 'platinumazure/eslint-plugin-qunit', + 'sindresorhus/eslint-plugin-unicorn', + 'square/eslint-plugin-square', + 'storybookjs/eslint-plugin-storybook', + 'testing-library/eslint-plugin-jest-dom', + 'testing-library/eslint-plugin-testing-library', + 'typescript-eslint/typescript-eslint', + ], + + /** Extensions of files under scanning */ + extensions: ['js', 'mjs', 'cjs', 'ts', 'mts', 'cts'], + + /** Optional boolean flag used to enable caching of cloned repositories. For CIs it's ideal to disable caching. Defaults to true. */ + cache: false, + + /** ESLint configuration */ + eslintrc: { + extends: ['plugin:eslint-plugin/all'], + + overrides: [ + { + files: ['*.ts', '*.mts', '*.cts'], + parser: '@typescript-eslint/parser', + }, + ], + }, +}; diff --git a/package.json b/package.json index 1da198e7..f1338825 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "lint:js": "eslint --cache --ignore-pattern \"**/*.md\" .", "lint:js-docs": "eslint --no-inline-config \"**/*.md\"", "lint:package-json": "npmPkgJsonLint .", + "lint:remote": "eslint-remote-tester", "release": "release-it", "test": "nyc --all --check-coverage --include lib mocha tests --recursive", "update:eslint-docs": "eslint-doc-generator" @@ -63,6 +64,7 @@ "eslint-plugin-node": "^11.1.0", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-unicorn": "^44.0.0", + "eslint-remote-tester": "^3.0.0", "eslint-scope": "^7.1.1", "espree": "^9.4.0", "husky": "^8.0.1",