18F/federalist

View on GitHub
.eslintrc.js

Summary

Maintainability
A
0 mins
Test Coverage
const finalRules = {
  /* airbnb config overrides */
  'react/jsx-filename-extension': [0],
  'import/no-extraneous-dependencies': [0],
  'import/no-named-as-default': [0], // allow component to be the same as the default export
  'class-methods-use-this': [0],
  'no-throw-literal': [0],
  'comma-dangle': ['error',
    {
      arrays: 'always-multiline',
      objects: 'always-multiline',
      imports: 'always-multiline',
      exports: 'always-multiline',
      functions: 'never',
    },
  ],
  'arrow-parens': [2, 'as-needed', { requireForBlockBody: true }],

  // Allow prop spreading for React components, but not for html elements
  'react/jsx-props-no-spreading': [2, {
    custom: 'ignore',
    explicitSpread: 'ignore',
  }],
  'react/jsx-no-bind': [2, {
    allowArrowFunctions: true,
    allowFunctions: true,
  }],

  'sonarjs/no-duplicate-string': [0],
  'sonarjs/no-identical-functions': [0],
};

const overrides = [
  {
    files: ["frontend/**/*"],
    env: {
      'browser': true,
      'node': true
    },
  },
];

module.exports = {
  overrides,
  extends: ['airbnb', 'plugin:sonarjs/recommended', 'plugin:no-unsanitized/DOM'],
  rules: finalRules,
  parserOptions: {
    ecmaVersion: 2021,
  },
};