module.exports = { ignorePatterns: [ "node_modules/**", "build/**", "craco.config.js", "src/backend/pyodide/**", "src/backend/__test__/**", ], extends: [ "semistandard", "plugin:react/recommended", "plugin:prettier/recommended", "plugin:@typescript-eslint/recommended", ], rules: { semi: ["error", "always"], camelcase: ["off"], "react/prop-types": ["off"], "@typescript-eslint/no-explicit-any": ["off"], }, settings: { react: { createClass: "createReactClass", // Regex for Component Factory to use, // default to "createReactClass" pragma: "React", // Pragma to use, default to "React" fragment: "Fragment", // Fragment to use (may be a property of ), default to "Fragment" 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. // It will default to "latest" and warn if missing, and to "detect" in the future flowVersion: "0.53", // Flow version }, 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" }, // for rules that check exact prop wrappers { property: "forbidExtraProps", exact: true }, ], componentWrapperFunctions: [ // The name of any function used to wrap components, e.g. Mobx `observer` function. If this isn't set, components wrapped by these functions will be skipped. "observer", // `property` { property: "styled" }, // `object` is optional { property: "observer", object: "Mobx" }, { property: "observer", object: "" }, // sets `object` to whatever value `settings.react.pragma` is set to ], formComponents: [ // Components used as alternatives to
for forms, eg. "CustomForm", { name: "Form", formAttribute: "endpoint" }, ], linkComponents: [ // Components used as alternatives to for linking, eg. "Hyperlink", { name: "Link", linkAttribute: "to" }, ], }, };