/** @type {import("eslint").Linter.Config} */ const config = { extends: [ "turbo", "eslint:recommended", "plugin:@typescript-eslint/recommended-type-checked", "plugin:@typescript-eslint/stylistic-type-checked", "prettier", ], env: { es2022: true, node: true, }, parser: "@typescript-eslint/parser", parserOptions: { project: true }, plugins: ["@typescript-eslint", "import"], rules: { "turbo/no-undeclared-env-vars": "off", "@typescript-eslint/no-unused-vars": [ "error", { argsIgnorePattern: "^_", varsIgnorePattern: "^_" }, ], "@typescript-eslint/consistent-type-imports": [ "warn", { prefer: "type-imports", fixStyle: "separate-type-imports" }, ], "@typescript-eslint/no-misused-promises": [ 2, { checksVoidReturn: { attributes: false } }, ], "import/consistent-type-specifier-style": ["error", "prefer-top-level"], "@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/no-unsafe-argument": "off", "@typescript-eslint/no-unsafe-enum-comparison": "off", }, ignorePatterns: [ "**/*.config.js", "**/*.config.cjs", "**/.eslintrc.cjs", "dist", "pnpm-lock.yaml", "tamagui-web.css", ], reportUnusedDisableDirectives: true, // disable all typescript rules for js files overrides: [ { files: ["*.js", "*.cjs", "*.mjs"], rules: { "@typescript-eslint/no-var-requires": "off", "@typescript-eslint/explicit-module-boundary-types": "off", "@typescript-eslint/no-unsafe-assignment": "off", "@typescript-eslint/no-unsafe-member-access": "off", "@typescript-eslint/no-unsafe-call": "off", "@typescript-eslint/no-unsafe-return": "off", "@typescript-eslint/no-floating-promises": "off", "@typescript-eslint/require-await": "off", "@typescript-eslint/no-misused-promises": "off", }, }, ], }; module.exports = config;