const globals = require("globals");
const js = require("@eslint/js");
+const erb = require("eslint-plugin-erb");
const stylisticJs = require("@stylistic/eslint-plugin-js");
module.exports = [
js.configs.recommended,
+ erb.configs.recommended,
+ {
+ ignores: [
+ "app/assets/javascripts/i18n/",
+ "coverage/assets/",
+ "public/assets/",
+ "vendor/"
+ ]
+ },
{
plugins: {
"@stylistic": stylisticJs
L: "readonly",
OSM: "writable",
Matomo: "readonly",
- Qs: "readonly",
Turbo: "readonly",
updateLinks: "readonly"
}
},
+ linterOptions: {
+ // The "unused disable directive" is set to "warn" by default.
+ // For the ERB plugin to work correctly, you must disable
+ // this directive to avoid issues described here
+ // https://github.com/eslint/eslint/discussions/18114
+ // If you're using the CLI, you might also use the following flag:
+ // --report-unused-disable-directives-severity=off
+ reportUnusedDisableDirectives: "off"
+ },
rules: {
"@stylistic/array-bracket-newline": ["error", "consistent"],
"@stylistic/array-bracket-spacing": "error",
"curly": ["error", "multi-line", "consistent"],
"dot-notation": "error",
"eqeqeq": ["error", "smart"],
- "no-alert": "warn",
+ "no-alert": "error",
"no-array-constructor": "error",
"no-caller": "error",
"no-console": "warn",
"no-extra-bind": "error",
"no-extra-label": "error",
"no-implicit-coercion": "warn",
- "no-implicit-globals": "warn",
+ "no-implicit-globals": "error",
"no-implied-eval": "error",
"no-invalid-this": "error",
"no-iterator": "error",
"no-nested-ternary": "error",
"no-new": "error",
"no-new-func": "error",
- "no-new-object": "error",
"no-new-wrappers": "error",
+ "no-object-constructor": "error",
"no-octal-escape": "error",
"no-param-reassign": "error",
- "no-process-env": "error",
"no-proto": "error",
"no-script-url": "error",
"no-self-compare": "error",