addons-frontend/.eslintrc

117 строки
3.5 KiB
Plaintext

{
"extends": [
"amo",
"plugin:amo/recommended"
],
"plugins": ["testing-library"],
"overrides": [
{
//Enable eslint-plugin-testing-library rules only for test files.
"files": ["**/tests/**/*.js"],
"extends": ["plugin:testing-library/react"],
"rules": {"testing-library/render-result-naming-convention": "off"}
},
],
"globals": {
"CLIENT_CONFIG": true,
"document": true,
"webpackIsomorphicTools": true,
"ga": true,
// https://flow.org/en/docs/types/utilities/#toc-objmap
"$ObjMap": true,
// https://flow.org/en/docs/types/utilities/#toc-propertytype
"$PropertyType": true,
// These are undocumented utilities that ship with Flow
// https://github.com/facebook/flow/issues/875
"$ReadOnlyArray": true,
"$Rest": true,
"$Shape": true,
"$Keys": true,
"$Values": true,
// See: https://github.com/facebook/flow/issues/1609
"SyntheticEvent": true,
"SyntheticInputEvent": true,
// See: https://github.com/facebook/flow/issues/5627
"TimeoutID": true,
// Standard DOM globals:
"Generator": true,
"HTMLAnchorElement": true,
"HTMLButtonElement": true,
"HTMLElement": true,
"HTMLInputElement": true,
"HTMLSelectElement": true,
"HTMLTextAreaElement": true,
"Node": true,
// This is used to send form data to the API.
"FormData": true,
// This is used to upload files in the browser.
"File": true,
"FileReader": true,
"ProgressEvent": true,
// Types that can be used with sendBeacon:
"BodyInit": true,
// This is used by api/index.js.
"Response": true
},
"parser": "@babel/eslint-parser",
"rules": {
// We omit `debug` because we don't turn that on by default.
"amo/only-log-strings": ["error", {
"methods": ["fatal", "info", "error", "warn"]
}],
"react/default-props-match-prop-types": "off",
"react/function-component-definition": "off",
"react/jsx-no-useless-fragment" : ["error", { allowExpressions: true }],
"react/no-unstable-nested-components": ["error", { allowAsProps: true }],
// This rule is disabled because it outputs a lot of false positives, see:
// https://github.com/benmosher/eslint-plugin-import/issues/1343
"import/no-cycle": "off",
// This rule is disabled because it outputs a lot of false positives, see:
// https://github.com/import-js/eslint-plugin-import/issues/2181
"import/no-import-module-exports": "off",
"jest/expect-expect": ["warn", {
"assertFunctionNames": [
"expect",
// Allow the use of `sinon` in test cases.
"sinon.assert.*",
"mock*.verify",
// Allow our custom matcher.
"matchingSagaAction",
],
}],
// This allows RTK's createSlice with the simple shorthand syntax.
"no-param-reassign": ["error", {
"props": true,
"ignorePropertyModificationsFor": [
"state"
]
}]
},
"settings": {
"import/core-modules": [
// This is a workaround for: https://github.com/benmosher/eslint-plugin-import/issues/793
"redux-saga/effects",
],
"import/ignore": [
// Because of CommonJS incompatibility, we can't
// check for bad imports in node_modules.
"node_modules",
// Ignore non-JS imports.
"\\.gif$",
"\\.jpeg$",
"\\.jpg$",
"\\.mp4$",
"\\.png$",
"\\.scss$",
"\\.svg$",
"\\.webm$"
],
"import/resolver": {
"node": {
// This adds ./src for relative imports.
"moduleDirectory": ["node_modules", "src"]
}
}
}
}