Fix eslint configuration

This commit is contained in:
Andrew Eisenberg 2024-07-16 15:13:51 -07:00
parent 3cf7236447
commit 778c2bc28d
No known key found for this signature in database
2 changed files with 113 additions and 80 deletions

View file

@ -1,38 +1,52 @@
// Automatically generated by running npx @eslint/migrate-config .eslintrc.json // Automatically generated by running npx @eslint/migrate-config .eslintrc.json
import path from "node:path";
import { fileURLToPath } from "node:url";
import { fixupConfigRules, fixupPluginRules } from "@eslint/compat"; import { fixupConfigRules, fixupPluginRules } from "@eslint/compat";
import { FlatCompat } from "@eslint/eslintrc";
import js from "@eslint/js";
import typescriptEslint from "@typescript-eslint/eslint-plugin"; import typescriptEslint from "@typescript-eslint/eslint-plugin";
import tsParser from "@typescript-eslint/parser";
import filenames from "eslint-plugin-filenames"; import filenames from "eslint-plugin-filenames";
import github from "eslint-plugin-github"; import github from "eslint-plugin-github";
import _import from "eslint-plugin-import"; import _import from "eslint-plugin-import";
import noAsyncForeach from "eslint-plugin-no-async-foreach"; import noAsyncForeach from "eslint-plugin-no-async-foreach";
import tsParser from "@typescript-eslint/parser"; import globals from "globals";
import path from "node:path";
import { fileURLToPath } from "node:url";
import js from "@eslint/js";
import { FlatCompat } from "@eslint/eslintrc";
const __filename = fileURLToPath(import.meta.url); const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename); const __dirname = path.dirname(__filename);
const compat = new FlatCompat({ const compat = new FlatCompat({
baseDirectory: __dirname, baseDirectory: __dirname,
recommendedConfig: js.configs.recommended, recommendedConfig: js.configs.recommended,
allConfig: js.configs.all allConfig: js.configs.all,
}); });
export default [{ export default [
ignores: ["**/webpack.config.js", "lib/**/*", "src/testdata/**/*", "tests/**/*"], {
}, ...fixupConfigRules(compat.extends( ignores: [
"**/webpack.config.js",
"lib/**/*",
"src/testdata/**/*",
"tests/**/*",
"eslint.config.mjs",
".github/**/*",
],
},
...fixupConfigRules(
compat.extends(
"eslint:recommended", "eslint:recommended",
"plugin:@typescript-eslint/recommended", "plugin:@typescript-eslint/recommended",
"plugin:@typescript-eslint/recommended-requiring-type-checking", "plugin:@typescript-eslint/recommended-requiring-type-checking",
"plugin:github/recommended", "plugin:github/recommended",
"plugin:github/typescript", "plugin:github/typescript",
"plugin:import/typescript", "plugin:import/typescript",
)), { ),
),
{
plugins: { plugins: {
"@typescript-eslint": fixupPluginRules(typescriptEslint), "@typescript-eslint": fixupPluginRules(typescriptEslint),
filenames, filenames: fixupPluginRules(filenames),
github: fixupPluginRules(github), github: fixupPluginRules(github),
import: fixupPluginRules(_import), import: fixupPluginRules(_import),
"no-async-foreach": noAsyncForeach, "no-async-foreach": noAsyncForeach,
@ -41,7 +55,11 @@ export default [{
languageOptions: { languageOptions: {
parser: tsParser, parser: tsParser,
ecmaVersion: 5, ecmaVersion: 5,
sourceType: "script", sourceType: "module",
globals: {
...globals.node,
},
parserOptions: { parserOptions: {
project: "./tsconfig.json", project: "./tsconfig.json",
@ -56,43 +74,56 @@ export default [{
typescript: {}, typescript: {},
}, },
"import/ignore": ["sinon", "uuid", "@octokit/plugin-retry"],
}, },
rules: { rules: {
"filenames/match-regex": ["error", "^[a-z0-9-]+(\\.test)?$"], "filenames/match-regex": ["error", "^[a-z0-9-]+(\\.test)?$"],
"i18n-text/no-en": "off", "i18n-text/no-en": "off",
"import/extensions": ["error", { "import/extensions": [
"error",
{
json: {}, json: {},
}], },
],
"import/no-amd": "error", "import/no-amd": "error",
"import/no-commonjs": "error", "import/no-commonjs": "error",
"import/no-cycle": "error", "import/no-cycle": "error",
"import/no-dynamic-require": "error", "import/no-dynamic-require": "error",
"import/no-extraneous-dependencies": ["error", { "import/no-extraneous-dependencies": [
"error",
{
devDependencies: true, devDependencies: true,
}], },
],
"import/no-namespace": "off", "import/no-namespace": "off",
"import/no-unresolved": "error", "import/no-unresolved": "error",
"import/no-webpack-loader-syntax": "error", "import/no-webpack-loader-syntax": "error",
"import/order": ["error", { "import/order": [
"error",
{
alphabetize: { alphabetize: {
order: "asc", order: "asc",
}, },
"newlines-between": "always", "newlines-between": "always",
}], },
],
"max-len": ["error", { "max-len": [
"error",
{
code: 120, code: 120,
ignoreUrls: true, ignoreUrls: true,
ignoreStrings: true, ignoreStrings: true,
ignoreTemplateLiterals: true, ignoreTemplateLiterals: true,
}], },
],
"no-async-foreach/no-async-foreach": "error", "no-async-foreach/no-async-foreach": "error",
"no-sequences": "error", "no-sequences": "error",
@ -100,8 +131,9 @@ export default [{
"@typescript-eslint/no-shadow": "error", "@typescript-eslint/no-shadow": "error",
"one-var": ["error", "never"], "one-var": ["error", "never"],
}, },
}, { },
files: ["**"], {
files: ["**/*.ts", "**/*.js"],
rules: { rules: {
"@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/no-explicit-any": "off",
@ -113,4 +145,5 @@ export default [{
"@typescript-eslint/restrict-template-expressions": "off", "@typescript-eslint/restrict-template-expressions": "off",
"func-style": "off", "func-style": "off",
}, },
}]; },
];

View file

@ -7,8 +7,8 @@
"build": "tsc --build", "build": "tsc --build",
"test": "ava src/**.test.ts --serial --verbose", "test": "ava src/**.test.ts --serial --verbose",
"test-debug": "ava src/**.test.ts --serial --verbose --timeout=20m", "test-debug": "ava src/**.test.ts --serial --verbose --timeout=20m",
"lint": "eslint --report-unused-disable-directives --max-warnings=0 . --ext .js,.ts", "lint": "eslint --report-unused-disable-directives --max-warnings=0 .",
"lint-fix": "eslint --report-unused-disable-directives --max-warnings=0 . --ext .js,.ts --fix", "lint-fix": "eslint --report-unused-disable-directives --max-warnings=0 . --fix",
"removeNPMAbsolutePaths": "removeNPMAbsolutePaths . --force" "removeNPMAbsolutePaths": "removeNPMAbsolutePaths . --force"
}, },
"ava": { "ava": {