Bläddra i källkod

ESLint config

Fela Maslen 5 år sedan
förälder
incheckning
ea4d50c4c1
1 ändrade filer med 100 tillägg och 0 borttagningar
  1. 100 0
      .eslintrc.js

+ 100 - 0
.eslintrc.js

@@ -0,0 +1,100 @@
+module.exports = {
+  plugins: ['prettier', 'react', 'react-hooks', 'import'],
+  parser: '@typescript-eslint/parser',
+  parserOptions: {
+    ecmaVersion: 8,
+    tokens: true,
+    sourceType: 'module',
+  },
+  env: {
+    browser: true,
+    commonjs: true,
+    es6: true,
+    node: true,
+    jest: true,
+  },
+  extends: [
+    'airbnb-base',
+    'prettier',
+    'plugin:@typescript-eslint/eslint-recommended',
+    'plugin:@typescript-eslint/recommended',
+    'plugin:react/recommended',
+  ],
+  settings: {
+    'import/resolver': {
+      alias: {
+        map: [
+          ['~client', './web/src'],
+          ['~client-test', './web/test'],
+          ['~api', './api/src'],
+          ['~api-test', './api/test'],
+        ],
+        extensions: ['.js', '.tsx', '.ts'],
+      },
+    },
+    react: {
+      version: 'detect',
+    },
+  },
+  rules: {
+    '@typescript-eslint/explicit-function-return-type': 'off',
+    '@typescript-eslint/no-explicit-any': [
+      'error',
+      {
+        ignoreRestArgs: true,
+      },
+    ],
+    '@typescript-eslint/no-var-requires': 'off',
+    'import/extensions': [
+      'error',
+      'ignorePackages',
+      {
+        js: 'never',
+        jsx: 'never',
+        ts: 'never',
+        tsx: 'never',
+        mjs: 'never',
+      },
+    ],
+    'import/no-extraneous-dependencies': [
+      'error',
+      {
+        devDependencies: [
+          'api/src/global.d.ts',
+          '**/*spec.ts',
+          '**/*.spec.tsx',
+          '**/*.spec.js',
+          '**/__tests__/*.ts',
+        ],
+      },
+    ],
+    'import/prefer-default-export': 0,
+    'jest/lowercase-name': 0,
+    'jest/require-top-level-describe': 0,
+    'max-len': ['error', 120],
+    'no-bitwise': 0,
+    'no-underscore-dangle': 0,
+    'prettier/prettier': ['error'],
+    'react/jsx-filename-extension': [
+      2,
+      {
+        extensions: ['.js', '.jsx', '.tsx'],
+      },
+    ],
+    'react/prop-types': 0,
+    'react-hooks/rules-of-hooks': 'error',
+    'react-hooks/exhaustive-deps': 'warn',
+    '@typescript-eslint/camelcase': 0,
+  },
+  overrides: [
+    {
+      files: ['*.ts', '*.tsx'],
+      rules: {
+        'prefer-destructuring': 0,
+        '@typescript-eslint/explicit-function-return-type': ['error'],
+        '@typescript-eslint/no-unused-vars': ['error', { ignoreRestSiblings: true }],
+        '@typescript-eslint/no-var-requires': ['error'],
+      },
+    },
+  ],
+};