import eslintConfigPrettier from "eslint-config-prettier"; import stylistic from "@stylistic/eslint-plugin"; import eslint from "@eslint/js"; import tseslint from "typescript-eslint"; import stylisticJs from "@stylistic/eslint-plugin-js"; import { type FlatESLintConfig } from "eslint-define-config"; const config: FlatESLintConfig[] = [ eslintConfigPrettier, eslint.configs.recommended, stylisticJs.configs["disable-legacy"], ...tseslint.configs.recommended, stylistic.configs.customize({ indent: 4, quotes: "double", semi: true, braceStyle: "1tbs", arrowParens: true, }), { rules: { "no-console": "warn", "@typescript-eslint/no-unused-vars": [ "error", { args: "all", argsIgnorePattern: "^_", caughtErrors: "all", caughtErrorsIgnorePattern: "^_", destructuredArrayIgnorePattern: "^_", varsIgnorePattern: "^_", ignoreRestSiblings: true, }, ], // the following stylistic lints conflict with prettier "@stylistic/operator-linebreak": "off", "@stylistic/indent-binary-ops": "off", "@stylistic/indent": "off", "@stylistic/brace-style": "off", "@stylistic/quotes": "off", }, }, { ignores: ["out/", ".vscode-test/", "node_modules/"], }, ]; export default config;