module.exports = { env: { browser: true, es6: true, node: true, }, extends: [ // 🏋️‍♂️ Typescript and some helper plugins 'plugin:@typescript-eslint/eslint-recommended', 'plugin:@typescript-eslint/recommended', 'plugin:import/errors', 'plugin:import/warnings', 'plugin:import/typescript', 'plugin:typescript-sort-keys/recommended', // 🧩 Consider these the "best practices" for a React app 'eslint:recommended', 'plugin:react/recommended', // 👀 Make sure this is always the last configuration in the extends array. 'plugin:prettier/recommended', ], globals: { afterAll: false, afterEach: false, beforeAll: false, beforeEach: false, describe: false, expect: false, it: false, test: false, }, parser: '@typescript-eslint/parser', parserOptions: { ecmaFeatures: { jsx: true, }, ecmaVersion: 2020, sourceType: 'module', }, plugins: [ '@typescript-eslint', 'simple-import-sort', 'import', 'prettier', 'react', 'react-hooks', 'sort-keys-fix', ], root: true, rules: { '@typescript-eslint/no-unused-vars': [ 'error', { argsIgnorePattern: '^_', varsIgnorePattern: '^_', }, ], 'import/no-named-as-default-member': 'off', 'import/order': [ 'error', { groups: [ 'type', 'builtin', 'external', 'internal', 'index', 'parent', 'sibling', 'object', ], 'newlines-between': 'always', pathGroups: [ { pattern: '@ssm/types', group: 'type', }, { pattern: 'types/*', group: 'type', }, { pattern: '@ssm/**/types/*', group: 'type', }, { pattern: '@ssm/**', group: 'internal', position: 'before', }, ], }, ], 'no-unused-vars': 'warn', 'react/jsx-sort-props': 'error', 'react/prop-types': 'off', 'sort-keys-fix/sort-keys-fix': 'error', }, settings: { react: { pragma: 'React', version: 'detect', }, }, };