{ "parser": "@babel/eslint-parser", "plugins": ["babel", "vue", "import", "node", "promise"], "env": { "browser": true, "node": true, "es6": true, "jest": true }, "extends": [ "plugin:vue/vue3-essential", "eslint:recommended" ], "parserOptions": { "ecmaVersion": "latest" }, "rules": { "radix": "off", "array-callback-return": "error", "object-curly-spacing": ["error", "always"], "curly": ["error", "all"], "brace-style": ["error", "1tbs"], "space-before-blocks": "error", "space-before-function-paren": ["error", { "anonymous": "never", "named": "never", "asyncArrow": "always" }], "keyword-spacing": ["error", { "before": true, "after": true }], "no-undef": "error", "no-trailing-spaces": "error", "semi": "error", "arrow-parens": ["error", "always"], "camelcase": "error", "arrow-body-style": "off", "array-bracket-spacing": "error", "quotes": ["error", "single", { "avoidEscape": true }], "prefer-template": "error", "no-tabs": "error", "import/no-duplicates": "error", "no-unused-vars": "error", "no-unused-expressions": "off", "no-useless-rename": "off", "no-await-in-loop": "off", "no-lonely-if": "off", "guard-for-in": "off", "function-paren-newline": "off", "indent": ["error", 2, { "SwitchCase": 1 }], "no-case-declarations": "off", "no-restricted-syntax": "off", "no-new": "off", "symbol-description": "off", "comma-dangle": "off", "no-empty": [2, { "allowEmptyCatch": true }], "lines-between-class-members": "off", "no-fallthrough": "off", "func-names": "off", "operator-linebreak": "off", "no-var": 2, "quote-props": "off", "prefer-arrow-callback": "off", // would like to remove this rule https://eslint.org/docs/rules/prefer-arrow-callback#require-using-arrow-functions-for-callbacks-prefer-arrow-callback "dot-notation": "off", "class-methods-use-this": "off", "object-curly-newline": "off", "vars-on-top": "off", "prefer-destructuring": "off", "eol-last": "off", "max-len": "off", "prefer-rest-params": "off", // would like to remove this rule https://eslint.org/docs/rules/prefer-rest-params#suggest-using-the-rest-parameters-instead-of-arguments-prefer-rest-params "no-underscore-dangle": "off", "object-shorthand": "off", // would like to remove this rule https://eslint.org/docs/rules/object-shorthand#require-object-literal-shorthand-syntax-object-shorthand "no-console": ["error", { "allow": ["warn", "error"] }], "no-param-reassign": "off", "no-plusplus": "off", "consistent-return": "off", "new-cap": "off", "linebreak-style": "off", "no-throw-literal": "off", "no-script-url": "off", "no-restricted-globals": "off", // would like to remove this rule https://eslint.org/docs/rules/no-restricted-globals#disallow-specific-global-variables-no-restricted-globals "no-multi-assign": "off", // would like to remove this rule https://eslint.org/docs/rules/no-multi-assign#disallow-use-of-chained-assignment-expressions-no-multi-assign "no-bitwise": "off", "no-prototype-builtins": "off", "no-nested-ternary": "off", "prefer-promise-reject-errors": "off", "prefer-spread": "off", // would like to remove this rule https://eslint.org/docs/rules/prefer-spread#suggest-using-spread-syntax-instead-of-apply-prefer-spread "no-mixed-operators": "off", "no-cond-assign": "off", "no-extend-native": "off", // would be nice to remove, not critical https://eslint.org/docs/rules/no-extend-native#disallow-extending-of-native-objects-no-extend-native "no-restricted-properties": "off", "no-proto": "off", // would like to remove this rule https://eslint.org/docs/rules/no-proto#disallow-use-of-__proto__-no-proto "no-continue": "off", "default-case": "off", "no-shadow": "off", // would like to eventually remove this but its super hard right now https://eslint.org/docs/rules/no-shadow#disallow-variable-declarations-from-shadowing-variables-declared-in-the-outer-scope-no-shadow "no-useless-escape": "off", "wrap-iife": "off", "import/no-cycle": "off", "import/order": "off", "import/named": "off", "import/no-named-as-default": "off", "import/prefer-default-export": "off", "import/no-extraneous-dependencies": "off", "import/no-unresolved": "off", "import/no-webpack-loader-syntax": "off", "import/extensions": [ "error", "ignorePackages", { "js": "never", "ts": "never" } ], "@typescript-eslint/no-useless-constructor": "off", "@typescript-eslint/explicit-function-return-type": "off", "@typescript-eslint/no-this-alias": "off", "@typescript-eslint/no-empty-function": "off", "@typescript-eslint/camelcase": "off", "@typescript-eslint/ban-ts-ignore": "off", "@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/no-empty-interface": "off", "@typescript-eslint/no-use-before-define": "off", "@typescript-eslint/class-name-casing": "off", "@typescript-eslint/no-unused-vars": "off", "@pdftron/webviewer/no-string-events": "off", "react/prop-types": "off" }, "overrides": [ { "files": "**/*.ts", "rules": { "no-useless-constructor": "off" } }, { "files": "**/*.stories.js", "rules": { "no-console": "off", "react/prop-types": "off", "no-alert": "off", "no-unused-vars": "off", "@typescript-eslint/no-useless-constructor": "off", "no-useless-constructor": "off" } }, { "files": "**/*.spec.js", "rules": { "no-console": "off", "no-undef": "off", "no-unused-vars": "off", "no-alert": "off", "@typescript-eslint/no-useless-constructor": "off", "no-useless-constructor": "off" } }, { "files": "**/*.test.js", "rules": { "no-console": "off", "no-undef": "off", "no-unused-vars": "off", "no-alert": "off", "@typescript-eslint/no-useless-constructor": "off", "no-useless-constructor": "off" } } ] }