module.exports = { root: true, env: { browser: true, commonjs: true, node: true, }, parser: "@typescript-eslint/parser", parserOptions: { tsconfigRootDir: __dirname, project: ["./tsconfig.json", "./website/tsconfig.json"], }, globals: { JSX: true, }, extends: [ "eslint:recommended", "plugin:react/recommended", "plugin:react-hooks/recommended", "plugin:@typescript-eslint/recommended", "plugin:import/recommended", "plugin:regexp/recommended", "plugin:prettier/recommended", ], settings: { "import/resolver": { node: { extensions: [".js", ".jsx", ".ts", ".tsx"], }, typescript: true, }, react: { version: "detect", }, }, overrides: [ { files: ["*.ts", "*.tsx"], rules: { "import/no-unresolved": "off", }, }, { files: ["*.js", "*.cjs"], rules: { "@typescript-eslint/no-var-requires": "off", }, }, ], plugins: ["@typescript-eslint"], rules: { "linebreak-style": ["error", "unix"], quotes: ["error", "double", { avoidEscape: true }], semi: ["error", "always"], "@typescript-eslint/no-non-null-assertion": "off", "import/order": [ "error", { groups: [ "builtin", "external", "internal", "parent", "sibling", "index", ], pathGroups: [ { pattern: "react", group: "builtin", position: "before" }, { pattern: "fs-extra", group: "builtin" }, { pattern: "lodash", group: "external", position: "before" }, { pattern: "clsx", group: "external", position: "before" }, { pattern: "@theme/**", group: "internal" }, { pattern: "@site/**", group: "internal" }, { pattern: "@theme-init/**", group: "internal" }, { pattern: "@theme-original/**", group: "internal" }, ], pathGroupsExcludedImportTypes: [], "newlines-between": "always", alphabetize: { order: "asc", }, }, ], }, };