module.exports = { env: { browser: true, es2021: true, node: true, }, plugins: [ '@typescript-eslint', 'react', 'react-hooks', 'simple-import-sort', 'unused-imports', ], extends: [ 'eslint:recommended', 'plugin:react/recommended', 'plugin:react-hooks/recommended', 'plugin:@typescript-eslint/recommended', 'prettier', ], settings: { react: { version: 'detect', }, }, rules: { 'no-unused-vars': 'off', 'no-console': 'warn', '@typescript-eslint/explicit-module-boundary-types': 'off', '@typescript-eslint/no-empty-function': 'off', '@typescript-eslint/no-inferrable-types': 'off', '@typescript-eslint/no-var-requires': 'off', 'no-case-declarations': 'off', 'react/no-unescaped-entities': 'off', 'no-empty': 'off', 'no-useless-escape': 'off', 'prefer-const': 'off', 'react/display-name': 'off', 'react/prop-types': 'off', 'react-hooks/immutability': 'off', 'react-hooks/purity': 'off', 'react-hooks/refs': 'off', 'react-hooks/set-state-in-effect': 'off', 'react/jsx-curly-brace-presence': [ 'warn', { props: 'never', children: 'never' }, ], //#region //*=========== Unused Import =========== '@typescript-eslint/no-unused-vars': 'off', 'unused-imports/no-unused-imports': 'warn', 'unused-imports/no-unused-vars': [ 'warn', { vars: 'all', varsIgnorePattern: '^_', args: 'after-used', argsIgnorePattern: '^_', }, ], //#endregion //*======== Unused Import =========== //#region //*=========== Import Sort =========== 'simple-import-sort/exports': 'warn', 'simple-import-sort/imports': [ 'warn', { groups: [ // ext library & side effect imports ['^@?\\w', '^\\u0000'], // {s}css files ['^.+\\.s?css$'], // Lib and hooks ['^@/lib', '^@/hooks'], // static data ['^@/data'], // components ['^@/components', '^@/container'], // zustand store ['^@/store'], // Other imports ['^@/'], // relative paths up until 3 level [ '^\\./?$', '^\\.(?!/?$)', '^\\.\\./?$', '^\\.\\.(?!/?$)', '^\\.\\./\\.\\./?$', '^\\.\\./\\.\\.(?!/?$)', '^\\.\\./\\.\\./\\.\\./?$', '^\\.\\./\\.\\./\\.\\.(?!/?$)', ], ['^@/types'], // other that didnt fit in ['^'], ], }, ], //#endregion //*======== Import Sort =========== }, globals: { React: true, JSX: true, }, };