module.exports = { // https://eslint.org/docs/user-guide/configuring#configuration-cascading-and-hierarchy // This option interrupts the configuration hierarchy at this file // Remove this if you have an higher level ESLint config file (it usually happens into a monorepos) root: true, parserOptions: { parser: require.resolve('@typescript-eslint/parser'), extraFileExtensions: [], }, env: { browser: true, es2021: true, node: true, }, // Rules order is important, please avoid shuffling them extends: [ // Base ESLint recommended rules // 'eslint:recommended', 'plugin:@typescript-eslint/recommended', 'prettier', ], plugins: [ // required to apply rules which need type information '@typescript-eslint', ], globals: { __statics: 'readonly', process: 'readonly', chrome: 'readonly', }, // add your custom rules here rules: { 'prefer-promise-reject-errors': 'off', quotes: ['warn', 'single', { avoidEscape: true }], // this rule, if on, would require explicit return type on the `render` function '@typescript-eslint/explicit-function-return-type': 'off', // in plain CommonJS modules, you can't use `import foo = require('foo')` to pass this rule, so it has to be disabled '@typescript-eslint/no-var-requires': 'off', // The core 'no-unused-vars' rules (in the eslint:recommended ruleset) // does not work with type definitions 'no-unused-vars': 'off', // allow debugger during development only 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', }, };