UNPKG

eslint-config-amply

Version:

A baseline eslint config for all Amply projects.

82 lines (81 loc) 2.62 kB
module.exports = { parser: 'babel-eslint', env: { browser: true, es6: true }, plugins: ['jsdoc', 'prettier'], extends: [ 'airbnb-base', require.resolve('./rules/whitespace'), require.resolve('./rules/prettier'), require.resolve('./rules/jsdoc'), require.resolve('./rules/general'), 'prettier', 'plugin:prettier/recommended' ], settings: { 'import/resolver': { node: { extensions: ['.js', '.jsx', '.ts', '.tsx'] } }, 'import/extensions': ['.js', '.mjs', '.jsx', '.ts', '.tsx'] }, rules: { 'class-methods-use-this': 0, 'no-restricted-syntax': [ 'error', { selector: 'ForInStatement', message: 'for..in loops iterate over the entire prototype chain, which is virtually never what you want. Use Object.{keys,values,entries}, and iterate over the resulting array.' }, { selector: 'LabeledStatement', message: 'Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand.' }, { selector: 'WithStatement', message: '`with` is disallowed in strict mode because it makes code impossible to predict and optimize.' } ], 'prefer-destructuring': [2, { array: false, object: true }], 'import/prefer-default-export': 0, 'import/no-extraneous-dependencies': [ 'error', { devDependencies: true, optionalDependencies: true, peerDependencies: true } ] }, overrides: [ { files: ['*.ts', '*.tsx'], rules: { 'no-undef': 0, 'no-unused-vars': 0, '@typescript-eslint/no-unused-vars': 2, 'import/extensions': [ 'error', 'ignorePackages', { js: 'never', mjs: 'never', jsx: 'never', ts: 'never', tsx: 'never' } ], 'jsdoc/require-param-type': 0, indent: ['error', 4], 'react/jsx-indent': ['error', 4], 'react/jsx-indent-props': ['error', 4] } } ] };