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,116 +1,149 @@
// 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: [
"eslint:recommended", "**/webpack.config.js",
"plugin:@typescript-eslint/recommended", "lib/**/*",
"plugin:@typescript-eslint/recommended-requiring-type-checking", "src/testdata/**/*",
"plugin:github/recommended", "tests/**/*",
"plugin:github/typescript", "eslint.config.mjs",
"plugin:import/typescript", ".github/**/*",
)), { ],
},
...fixupConfigRules(
compat.extends(
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:@typescript-eslint/recommended-requiring-type-checking",
"plugin:github/recommended",
"plugin:github/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,
}, },
languageOptions: { languageOptions: {
parser: tsParser, parser: tsParser,
ecmaVersion: 5, ecmaVersion: 5,
sourceType: "script", sourceType: "module",
parserOptions: { globals: {
project: "./tsconfig.json", ...globals.node,
}, },
parserOptions: {
project: "./tsconfig.json",
},
}, },
settings: { settings: {
"import/resolver": { "import/resolver": {
node: { node: {
moduleDirectory: ["node_modules", "src"], moduleDirectory: ["node_modules", "src"],
},
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": [
json: {}, "error",
}], {
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": [
devDependencies: true, "error",
}], {
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": [
alphabetize: { "error",
order: "asc", {
}, alphabetize: {
order: "asc",
},
"newlines-between": "always", "newlines-between": "always",
}], },
],
"max-len": ["error", { "max-len": [
code: 120, "error",
ignoreUrls: true, {
ignoreStrings: true, code: 120,
ignoreTemplateLiterals: true, ignoreUrls: true,
}], ignoreStrings: true,
ignoreTemplateLiterals: true,
},
],
"no-async-foreach/no-async-foreach": "error", "no-async-foreach/no-async-foreach": "error",
"no-sequences": "error", "no-sequences": "error",
"no-shadow": "off", "no-shadow": "off",
"@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",
"@typescript-eslint/no-unsafe-assignment": "off", "@typescript-eslint/no-unsafe-assignment": "off",
"@typescript-eslint/no-unsafe-member-access": "off", "@typescript-eslint/no-unsafe-member-access": "off",
"@typescript-eslint/no-var-requires": "off", "@typescript-eslint/no-var-requires": "off",
"@typescript-eslint/prefer-regexp-exec": "off", "@typescript-eslint/prefer-regexp-exec": "off",
"@typescript-eslint/require-await": "off", "@typescript-eslint/require-await": "off",
"@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": {