const path = require("path"); module.exports = { env: { browser: true, es6: true, jquery: true, jest: true, node: true, }, extends: [ "eslint:recommended", "plugin:react/recommended", "plugin:@typescript-eslint/recommended", "plugin:import/errors", "plugin:import/warnings", "plugin:import/typescript", "prettier", //"plugin:prettier/recommended", "prettier/@typescript-eslint", "plugin:jsx-a11y/recommended", ], parser: "@typescript-eslint/parser", parserOptions: { ecmaFeatures: { jsx: true, }, project: path.join(__dirname, "tsconfig.json"), //extraFileExtensions: [".html"], }, plugins: ["react", "react-hooks", "prettier", "emotion", "@typescript-eslint", "jsx-a11y", "babel"], rules: { "@typescript-eslint/ban-ts-comment": "off", "@typescript-eslint/no-empty-function": "off", "@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/no-unused-vars": "off", "@typescript-eslint/explicit-module-boundary-types": "off", "react/prop-types": "off", complexity: ["error", 5], }, settings: { "import/parsers": { "@typescript-eslint/parser": [".ts", ".tsx"], }, "import/resolver": { webpack: { config: path.join(__dirname, "webpack.config.dev.js"), }, }, react: { createClass: "createReactClass", // Regex for Component Factory to use, // default to "createReactClass" pragma: "React", // Pragma to use, default to "React" version: "detect", // React version. "detect" automatically picks the version you have installed. // You can also use `16.0`, `16.3`, etc, if you want to override the detected value. // default to latest and warns if missing // It will default to "detect" in the future }, propWrapperFunctions: [ // The names of any function used to wrap propTypes, e.g. `forbidExtraProps`. If this isn't set, any propTypes wrapped in a function will be skipped. "forbidExtraProps", { property: "freeze", object: "Object" }, { property: "myFavoriteWrapper" }, ], linkComponents: [ // Components used as alternatives to for linking, eg. "Hyperlink", { name: "Link", linkAttribute: "to" }, ], }, };