diff --git a/.eslintrc.js b/.eslintrc.js index d1bebf07b..eceefc160 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -27,6 +27,8 @@ module.exports = { 'class-methods-use-this': 'off', 'consistent-return': 'off', 'default-case': 'off', + 'default-param-last': 'off', + 'import/extensions': 'off', 'jsx-a11y/click-events-have-key-events': 'off', 'no-alert': 'off', 'no-continue': 'off', @@ -37,11 +39,20 @@ module.exports = { 'no-underscore-dangle': 'off', 'prefer-promise-reject-errors': 'off', 'react/destructuring-assignment': 'off', + 'react/function-component-definition': 'off', 'react/jsx-fragments': 'off', + 'react/jsx-no-constructed-context-values': 'off', + 'react/jsx-no-script-url': 'off', + 'react/jsx-no-useless-fragment': 'off', 'react/jsx-props-no-spreading': 'off', - 'react/sort-comp': [0, {}], + 'react/no-arrow-function-lifecycle': 'off', + 'react/no-invalid-html-attribute': 'off', + 'react/no-namespace': 'off', + 'react/no-unstable-nested-components': 'off', + 'react/no-unused-class-component-methods': 'off', + 'react/prefer-exact-props': 'off', 'react/prop-types': 'off', - 'import/extensions': 'off', + 'react/sort-comp': [0, {}], // Override AirBnB's config for this rule to make it more strict. // https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/order.md 'import/order': [ diff --git a/package.json b/package.json index fc145345f..d4f28bd64 100644 --- a/package.json +++ b/package.json @@ -85,7 +85,7 @@ "copy-webpack-plugin": "^11.0.0", "css-loader": "^6.7.0", "eslint": "8.21.0", - "eslint-config-airbnb": "18.0.1", + "eslint-config-airbnb": "19.0.4", "eslint-config-prettier": "8.5.0", "eslint-plugin-import": "2.26.0", "eslint-plugin-jest": "23.1.1", diff --git a/ui/helpers/taskcluster.js b/ui/helpers/taskcluster.js index ab9f70f0b..e6e6c7b8c 100644 --- a/ui/helpers/taskcluster.js +++ b/ui/helpers/taskcluster.js @@ -80,6 +80,7 @@ const taskcluster = (() => { userCredentials[_rootUrl] && moment(userCredentials[_rootUrl].expires).isAfter(moment()) ) { + // eslint-disable-next-line no-promise-executor-return return resolve(userCredentials[_rootUrl]); } diff --git a/ui/intermittent-failures/helpers.js b/ui/intermittent-failures/helpers.js index 5fde733a7..e15d65ce6 100644 --- a/ui/intermittent-failures/helpers.js +++ b/ui/intermittent-failures/helpers.js @@ -131,7 +131,7 @@ export const tableRowStyling = function tableRowStyling(state, bug) { return { style }; } - const disabledStrings = new RegExp('(disabled|annotated|marked)', 'i'); + const disabledStrings = /(disabled|annotated|marked)/i; if (disabledStrings.test(bug.row.whiteboard)) { return { style }; } diff --git a/ui/shared/tabs/failureSummary/SuggestionsListItem.jsx b/ui/shared/tabs/failureSummary/SuggestionsListItem.jsx index 3779a8609..75d0dff86 100644 --- a/ui/shared/tabs/failureSummary/SuggestionsListItem.jsx +++ b/ui/shared/tabs/failureSummary/SuggestionsListItem.jsx @@ -130,9 +130,7 @@ export default class SuggestionsListItem extends React.Component { , ); } - const filterTestPath = suggestion.search.match( - RegExp('([a-z_\\-s0-9.]+[/])+', 'gi'), - ); + const filterTestPath = suggestion.search.match(/([a-z_\\-s0-9.]+[/])+/gi); return (
  • diff --git a/ui/taskcluster-auth-callback/TaskclusterCallback.jsx b/ui/taskcluster-auth-callback/TaskclusterCallback.jsx index 364264845..d33b8155f 100644 --- a/ui/taskcluster-auth-callback/TaskclusterCallback.jsx +++ b/ui/taskcluster-auth-callback/TaskclusterCallback.jsx @@ -26,6 +26,7 @@ export default class TaskclusterCallback extends React.PureComponent { this.getCredentials(code); } else { if (error) + // eslint-disable-next-line no-import-assign errorMessage += `We received error: ${error} from Taskcluster.`; this.setState({ diff --git a/yarn.lock b/yarn.lock index ad245745b..218c5260b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4493,23 +4493,24 @@ escodegen@^2.0.0: optionalDependencies: source-map "~0.6.1" -eslint-config-airbnb-base@^14.0.0: - version "14.2.1" - resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz#8a2eb38455dc5a312550193b319cdaeef042cd1e" - integrity sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA== +eslint-config-airbnb-base@^15.0.0: + version "15.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz#6b09add90ac79c2f8d723a2580e07f3925afd236" + integrity sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig== dependencies: confusing-browser-globals "^1.0.10" object.assign "^4.1.2" - object.entries "^1.1.2" + object.entries "^1.1.5" + semver "^6.3.0" -eslint-config-airbnb@18.0.1: - version "18.0.1" - resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-18.0.1.tgz#a3a74cc29b46413b6096965025381df8fb908559" - integrity sha512-hLb/ccvW4grVhvd6CT83bECacc+s4Z3/AEyWQdIT2KeTsG9dR7nx1gs7Iw4tDmGKozCNHFn4yZmRm3Tgy+XxyQ== +eslint-config-airbnb@19.0.4: + version "19.0.4" + resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-19.0.4.tgz#84d4c3490ad70a0ffa571138ebcdea6ab085fdc3" + integrity sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew== dependencies: - eslint-config-airbnb-base "^14.0.0" - object.assign "^4.1.0" - object.entries "^1.1.0" + eslint-config-airbnb-base "^15.0.0" + object.assign "^4.1.2" + object.entries "^1.1.5" eslint-config-prettier@8.5.0: version "8.5.0" @@ -7609,7 +7610,7 @@ object.assign@^4.1.0, object.assign@^4.1.2: has-symbols "^1.0.1" object-keys "^1.1.1" -object.entries@^1.1.0, object.entries@^1.1.2: +object.entries@^1.1.0, object.entries@^1.1.2, object.entries@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.5.tgz#e1acdd17c4de2cd96d5a08487cfb9db84d881861" integrity sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==