| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- import eslint from '@eslint/js';
- import tseslint from 'typescript-eslint';
- import react from 'eslint-plugin-react';
- import prettier from 'eslint-plugin-prettier/recommended';
- import reactHooks from 'eslint-plugin-react-hooks';
- import importX from 'eslint-plugin-import-x';
- import { createTypeScriptImportResolver } from 'eslint-import-resolver-typescript';
- import playwright from 'eslint-plugin-playwright';
- import jest from 'eslint-plugin-jest';
- import testingLibrary from 'eslint-plugin-testing-library';
- import globals from 'globals';
- export default tseslint.config(
- {
- ignores: ['dist/', 'node_modules/'],
- },
- eslint.configs.recommended,
- tseslint.configs.strictTypeChecked,
- tseslint.configs.stylisticTypeChecked,
- reactHooks.configs.flat['recommended-latest'],
- importX.flatConfigs.recommended,
- importX.flatConfigs.typescript,
- {
- settings: {
- 'import-x/resolver-next': [createTypeScriptImportResolver()],
- },
- },
- {
- files: ['src/**/*.{ts,tsx}'],
- plugins: {
- react,
- },
- rules: {
- ...react.configs.recommended.rules,
- ...react.configs['jsx-runtime'].rules,
- '@typescript-eslint/consistent-type-imports': 'error',
- },
- languageOptions: {
- globals: globals.browser,
- parserOptions: {
- projectService: true,
- ecmaFeatures: {
- jsx: true,
- },
- },
- },
- settings: {
- react: {
- version: 'detect',
- },
- },
- },
- {
- files: ['src/**/*.spec.{ts,tsx}'],
- plugins: {
- ...jest.configs['flat/recommended'].plugins,
- ...jest.configs['flat/style'].plugins,
- ...testingLibrary.configs['flat/react'].plugins,
- },
- languageOptions: {
- ...jest.configs['flat/recommended'].languageOptions,
- ...jest.configs['flat/style'].languageOptions,
- globals: {
- ...jest.configs['flat/recommended'].languageOptions?.globals,
- ...globals.node,
- },
- },
- rules: {
- ...jest.configs['flat/recommended'].rules,
- ...jest.configs['flat/style'].rules,
- ...testingLibrary.configs['flat/react'].rules,
- },
- },
- {
- ...playwright.configs['flat/recommended'],
- files: ['integration-tests/**/*.ts'],
- ...tseslint.configs.disableTypeChecked,
- rules: {
- ...playwright.configs['flat/recommended'].rules,
- ...tseslint.configs.disableTypeChecked.rules,
- 'no-console': 'off',
- },
- },
- prettier,
- );
|