| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- import { defineConfig, globalIgnores } from "eslint/config";
- import { fixupConfigRules, fixupPluginRules } from "@eslint/compat";
- import typescriptEslint from "@typescript-eslint/eslint-plugin";
- import prettier from "eslint-plugin-prettier";
- import globals from "globals";
- import tsParser from "@typescript-eslint/parser";
- 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 __dirname = path.dirname(__filename);
- const compat = new FlatCompat({
- baseDirectory: __dirname,
- recommendedConfig: js.configs.recommended,
- allConfig: js.configs.all,
- });
- export default defineConfig([
- globalIgnores(['**/dist', '**/node_modules', '**/.cache']),
- {
- extends: fixupConfigRules(
- compat.extends(
- 'eslint:recommended',
- 'plugin:import/typescript',
- 'plugin:@typescript-eslint/eslint-recommended',
- 'plugin:@typescript-eslint/recommended',
- 'plugin:prettier/recommended',
- 'prettier',
- ),
- ),
- plugins: {
- '@typescript-eslint': fixupPluginRules(typescriptEslint),
- prettier: fixupPluginRules(prettier),
- },
- languageOptions: {
- globals: {
- ...globals.browser,
- ...globals.node,
- },
- parser: tsParser,
- ecmaVersion: 2020,
- sourceType: 'module',
- parserOptions: {
- ecmaFeatures: {
- arrowFunctions: true,
- },
- },
- },
- settings: {
- 'import/parsers': {
- '@typescript-eslint/parser': ['.ts', '.tsx'],
- },
- 'import/resolver': {
- typescript: {},
- },
- },
- rules: {
- '@typescript-eslint/no-unused-vars': 'error',
- 'no-unused-vars': 'off',
- 'no-inner-declarations': 'off',
- 'comma-dangle': ['error', 'always-multiline'],
- 'global-require': 'off',
- 'import/no-dynamic-require': 'off',
- 'import/prefer-default-export': 'off',
- '@typescript-eslint/no-inferrable-types': 'off',
- '@typescript-eslint/explicit-function-return-type': 'off',
- '@typescript-eslint/no-var-requires': 'off',
- '@typescript-eslint/no-non-null-assertion': 'off',
- '@typescript-eslint/no-namespace': 'off',
- '@typescript-eslint/no-empty-interface': [
- 'error',
- {
- allowSingleExtends: true,
- },
- ],
- },
- },
- ]);
|