root: true parser: '@typescript-eslint/parser' plugins: - '@typescript-eslint' - babel - react - json - jsdoc settings: react: version: '16.3' extends: - prettier - prettier/react rules: ########## # CUSTOM # ########## insecure-random: error ########### # PLUGINS # ########### # TYPESCRIPT '@typescript-eslint/naming-convention': - error - selector: interface format: - PascalCase custom: regex: '^I[A-Z]' match: true - selector: class format: - PascalCase '@typescript-eslint/consistent-type-assertions': - error - assertionStyle: 'as' '@typescript-eslint/no-unused-expressions': error '@typescript-eslint/explicit-member-accessibility': error '@typescript-eslint/no-unused-vars': - error - args: 'none' '@typescript-eslint/no-use-before-define': - error - functions: false variables: false typedefs: false # this rule now works but generates a lot of issues with the codebase # '@typescript-eslint/member-ordering': error # Babel babel/no-invalid-this: error # React react/jsx-boolean-value: - error - always react/jsx-key: error react/jsx-no-bind: error react/no-string-refs: error react/jsx-uses-vars: error react/jsx-uses-react: error # JSDoc jsdoc/check-alignment: error jsdoc/check-param-names: error jsdoc/check-tag-names: error jsdoc/check-types: error jsdoc/implements-on-classes: error jsdoc/newline-after-description: error jsdoc/no-undefined-types: error jsdoc/require-jsdoc: - error - publicOnly: true jsdoc/valid-types: error ########### # BUILTIN # ########### curly: error no-new-wrappers: error no-redeclare: - error - builtinGlobals: true no-eval: error no-sync: error no-var: error prefer-const: error eqeqeq: - error - smart strict: - error - global no-buffer-constructor: error ########### # SPECIAL # ########### no-restricted-syntax: - error # no-default-export - selector: ExportDefaultDeclaration message: Use of default exports is forbidden overrides: - files: '*.d.ts' rules: strict: - error - never parserOptions: sourceType: module ecmaFeatures: jsx: true