| 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; |