Files
InfiniteAPI/eslint.config.mts
T
2025-11-19 15:32:48 +02:00

78 lines
2.0 KiB
TypeScript

import { defineConfig, globalIgnores } from "eslint/config";
import prettier from "eslint-plugin-prettier";
import path from "node:path";
import { fileURLToPath } from "node:url";
import js from "@eslint/js";
import { FlatCompat } from "@eslint/eslintrc";
import base from "@whiskeysockets/eslint-config";
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const compat = new FlatCompat({
baseDirectory: __dirname,
recommendedConfig: js.configs.recommended,
allConfig: js.configs.all
});
export default defineConfig([globalIgnores([
"src/Tests/*",
"**/lib",
"**/coverage",
"**/*.lock",
"**/.eslintrc.json",
"src/WABinary/index.ts",
"**/WAProto",
"Example/Example.ts",
"**/docs",
"**/proto-extract",
]),
...base,
{
extends: [
...compat.extends("plugin:@typescript-eslint/recommended"),
...compat.extends("plugin:@typescript-eslint/recommended-requiring-type-checking"),
...compat.extends("plugin:prettier/recommended"),
],
plugins: {
prettier,
},
languageOptions: {
ecmaVersion: 5,
sourceType: "module",
parserOptions: {
project: "./tsconfig.json",
},
},
rules: {
camelcase: "off",
indent: "off",
"@typescript-eslint/no-explicit-any": ["warn", {
ignoreRestArgs: true,
}],
"@typescript-eslint/no-inferrable-types": ["warn"],
"@typescript-eslint/no-redundant-type-constituents": ["warn"],
"@typescript-eslint/no-unnecessary-type-assertion": ["warn"],
"no-restricted-syntax": "off",
"keyword-spacing": "off",
"implicit-arrow-linebreak": ["off"],
"space-before-function-paren": ["error", {
anonymous: "always",
named: "never",
asyncArrow: "always",
}],
"@typescript-eslint/no-floating-promises": "error",
"@typescript-eslint/no-unused-vars": ["error", {
caughtErrors: "none",
}],
},
}]);