123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- module.exports = {
- env: {
- browser: true,
- es6: true,
- commonjs: true,
- node: true,
- 'jest/globals': true
- },
- globals: {
- JSX: 'readonly'
- },
- root: true,
- extends: [
- 'eslint:recommended',
- 'plugin:@typescript-eslint/eslint-recommended',
- 'plugin:@typescript-eslint/recommended',
- 'prettier/@typescript-eslint',
- 'plugin:react/recommended',
- 'plugin:jest/recommended'
- ],
- parser: '@typescript-eslint/parser',
- parserOptions: {
- project: 'tsconfig.eslint.json'
- },
- plugins: ['@typescript-eslint', 'jest'],
- rules: {
- '@typescript-eslint/no-floating-promises': ['error', { ignoreVoid: true }],
- '@typescript-eslint/naming-convention': [
- 'error',
- {
- selector: 'interface',
- format: ['PascalCase'],
- custom: {
- regex: '^I[A-Z]',
- match: true
- }
- }
- ],
- '@typescript-eslint/no-unused-vars': ['warn', { args: 'none' }],
- '@typescript-eslint/no-use-before-define': 'off',
- '@typescript-eslint/camelcase': 'off',
- '@typescript-eslint/no-explicit-any': 'off',
- '@typescript-eslint/no-non-null-assertion': 'off',
- '@typescript-eslint/no-namespace': 'off',
- '@typescript-eslint/interface-name-prefix': 'off',
- '@typescript-eslint/explicit-function-return-type': 'off',
- '@typescript-eslint/ban-ts-comment': ['warn', { 'ts-ignore': true }],
- '@typescript-eslint/ban-types': 'warn',
- '@typescript-eslint/no-non-null-asserted-optional-chain': 'warn',
- '@typescript-eslint/no-var-requires': 'off',
- '@typescript-eslint/no-empty-interface': 'off',
- '@typescript-eslint/triple-slash-reference': 'warn',
- '@typescript-eslint/no-inferrable-types': 'off',
- 'jest/no-conditional-expect': 'warn',
- 'jest/valid-title': 'warn',
- 'id-match': ['error', '^[a-zA-Z_]+[a-zA-Z0-9_]*$'], // https://certitude.consulting/blog/en/invisible-backdoor/
- 'no-inner-declarations': 'off',
- 'no-prototype-builtins': 'off',
- 'no-control-regex': 'warn',
- 'no-undef': 'warn',
- 'no-case-declarations': 'warn',
- 'no-useless-escape': 'off',
- 'prefer-const': 'off',
- 'react/prop-types': 'off',
- 'sort-imports': [
- 'error',
- {
- ignoreCase: true,
- ignoreDeclarationSort: true,
- ignoreMemberSort: false,
- memberSyntaxSortOrder: ['none', 'all', 'multiple', 'single'],
- allowSeparatedGroups: false
- }
- ]
- },
- settings: {
- react: {
- version: 'detect'
- }
- }
- };
|