29 lines
1.0 KiB
JavaScript
29 lines
1.0 KiB
JavaScript
import globals from 'globals';
|
|
import pluginJs from '@eslint/js';
|
|
import tseslint from 'typescript-eslint';
|
|
import pluginReact from 'eslint-plugin-react';
|
|
import eslintPluginPrettierRecommended from 'eslint-config-prettier';
|
|
import reactHooks from 'eslint-plugin-react-hooks';
|
|
import path from 'node:path';
|
|
import { includeIgnoreFile } from '@eslint/compat';
|
|
import { fileURLToPath } from 'node:url';
|
|
import { defineConfig } from 'eslint/config';
|
|
|
|
const __filename = fileURLToPath(import.meta.url);
|
|
const __dirname = path.dirname(__filename);
|
|
const prettierIgnorePath = path.resolve(__dirname, '.prettierignore');
|
|
|
|
/** @type {import('eslint').Linter.Config[]} */
|
|
export default defineConfig([
|
|
includeIgnoreFile(prettierIgnorePath),
|
|
{
|
|
files: ['**/*.{js,mjs,cjs,ts,jsx,tsx}'],
|
|
},
|
|
{ languageOptions: { globals: { ...globals.browser, ...globals.node } } },
|
|
pluginJs.configs.recommended,
|
|
pluginReact.configs.flat['jsx-runtime'],
|
|
reactHooks.configs.flat.recommended,
|
|
eslintPluginPrettierRecommended,
|
|
...tseslint.configs.recommended,
|
|
]);
|