/** @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: { "id-length": [ "warn", { min: 3, exceptions: ["_", "i", "z", "t", "id", "db"], // _ for unused variables, i for index, z for zod, t for translation properties: "never", // This allows for example the use of as sm and md would be too short }, ], "@typescript-eslint/prefer-nullish-coalescing": "off", "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"], }, ignorePatterns: [ "**/.eslintrc.cjs", "**/*.config.js", "**/*.config.cjs", ".next", "dist", "pnpm-lock.yaml", ], reportUnusedDisableDirectives: true, }; module.exports = config;