factuges_2025/packages/eslint-config/server.js

79 lines
1.9 KiB
JavaScript
Raw Normal View History

2025-04-27 20:47:47 +00:00
const { rules } = require("eslint-config-prettier");
module.exports = {
2025-05-01 11:52:39 +00:00
parser: "@typescript-eslint/parser",
plugins: ["@typescript-eslint", "sort-class-members"],
extends: ["eslint:recommended", "plugin:@typescript-eslint/recommended", "prettier"],
2025-04-27 20:47:47 +00:00
env: {
2025-05-01 11:52:39 +00:00
browser: false,
2025-04-27 20:47:47 +00:00
node: true,
es6: true,
},
parserOptions: {
ecmaVersion: "latest",
sourceType: "module",
},
overrides: [
{
files: ["**/__tests__/**/*"],
env: {
jest: true,
},
},
],
rules: {
2025-05-01 11:52:39 +00:00
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-inferrable-types": "off",
"@typescript-eslint/no-empty-interface": "off",
"@typescript-eslint/recommended-requiring-type-checking": "off",
"@typescript-eslint/no-unused-vars": "warn",
"lines-between-class-members": ["error", "always", { exceptAfterSingleLine: true }],
"sort-class-members/sort-class-members": [
2,
{
order: [
"[static-properties]",
"[static-methods]",
"[conventional-private-properties]",
"[properties]",
"constructor",
"[methods]",
"[conventional-private-methods]",
],
accessorPairPositioning: "getThenSet",
},
],
"@typescript-eslint/no-unused-vars": [
"warn",
{ argsIgnorePattern: "^_", varsIgnorePattern: "^T$" },
],
2025-04-27 20:47:47 +00:00
"import/no-relative-parent-imports": "error",
"import/order": [
"error",
{
groups: ["builtin", "external", "internal", ["parent", "sibling", "index"]],
pathGroups: [
{
pattern: "@/**",
group: "internal",
},
],
pathGroupsExcludedImportTypes: ["builtin"],
"newlines-between": "always",
alphabetize: {
order: "asc",
caseInsensitive: true,
},
},
],
},
settings: {
"import/resolver": {
typescript: {
project,
},
},
},
};