import { base, baseRules } from "@workspace/tooling/eslint/base"; import { globals } from "@workspace/tooling/eslint/nestjs"; import eslintPluginPrettierRecommended from "eslint-plugin-prettier/recommended"; import { defineConfig } from "eslint/config"; export default defineConfig( { ignores: ["eslint.config.mjs"] }, ...base, eslintPluginPrettierRecommended, { files: ["src/**/*.ts"], languageOptions: { globals: { ...globals.node, ...globals.jest, }, sourceType: "commonjs", parserOptions: { projectService: true, tsconfigRootDir: import.meta.dirname, }, }, }, { files: ["src/**/*.ts"], rules: { "class-methods-use-this": "off", "@typescript-eslint/no-floating-promises": "warn", "@typescript-eslint/no-unsafe-argument": "warn", "@typescript-eslint/no-unsafe-assignment": "warn", "@typescript-eslint/no-unsafe-call": "warn", "@typescript-eslint/no-unsafe-member-access": "warn", "@typescript-eslint/no-unsafe-return": "warn", "prettier/prettier": ["error", { endOfLine: "auto" }], }, }, { files: ["src/**/*.spec.ts"], languageOptions: { globals: { ...globals.node, ...globals.jest, }, sourceType: "commonjs", parserOptions: { projectService: true, tsconfigRootDir: import.meta.dirname, }, }, rules: { "@typescript-eslint/unbound-method": "off", }, }, { files: ["test/**/*.ts"], languageOptions: { globals: { ...globals.node, ...globals.jest, }, sourceType: "commonjs", parserOptions: { project: "./tsconfig.eslint.json", tsconfigRootDir: import.meta.dirname, }, }, rules: { "class-methods-use-this": "off", "@typescript-eslint/no-floating-promises": "warn", "@typescript-eslint/no-unsafe-argument": "warn", "@typescript-eslint/no-unsafe-assignment": "warn", "@typescript-eslint/no-unsafe-call": "warn", "@typescript-eslint/no-unsafe-member-access": "warn", "@typescript-eslint/no-unsafe-return": "warn", "prettier/prettier": ["error", { endOfLine: "auto" }], }, }, );