diff --git a/frontend/.eslintrc.json b/frontend/.eslintrc.json index 0060038..6e23a84 100644 --- a/frontend/.eslintrc.json +++ b/frontend/.eslintrc.json @@ -1,87 +1,21 @@ { - "root": true, - "ignorePatterns": ["projects/**/*"], - "plugins": ["import", "prettier", "@stylistic/eslint-plugin-ts", "sort-class-members", "unused-imports"], + "extends": ["./../.eslintrc"], + "ignorePatterns": ["projects/**/*", "src/app/api"], + "plugins": [ + "import", + "prettier", + "@stylistic/eslint-plugin-ts", + "sort-class-members", + "unused-imports" + ], "overrides": [ { "files": ["*.ts"], "extends": [ - "eslint:recommended", - "plugin:@typescript-eslint/recommended", "plugin:@angular-eslint/recommended", - "plugin:@angular-eslint/template/process-inline-templates", - "prettier", - "plugin:prettier/recommended" + "plugin:@angular-eslint/template/process-inline-templates" ], "rules": { - "@stylistic/ts/lines-between-class-members": [ - "error", - { - "enforce": [ - { "blankLine": "always", "prev": "*", "next": "method" }, - { "blankLine": "always", "prev": "method", "next": "*" }, - { "blankLine": "never", "prev": "field", "next": "field" } - ] - } - ], - "@stylistic/ts/block-spacing": ["error"], - "@stylistic/ts/brace-style": "off", - "@stylistic/ts/key-spacing": ["error", { "afterColon": true }], - "@stylistic/ts/keyword-spacing": ["error", { "before": true }], - "@stylistic/ts/no-extra-parens": ["error", "all", { - "nestedBinaryExpressions": false, - "ternaryOperandBinaryExpressions": false - }], - "@stylistic/ts/no-extra-semi": ["error"], - "@stylistic/ts/object-curly-spacing": ["error", "always"], - "@stylistic/ts/quotes": ["error", "single"], - "@stylistic/ts/semi": ["error", "always"], - "@stylistic/ts/space-before-blocks": ["error"], - "@stylistic/ts/space-before-function-paren": ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}], - "@stylistic/ts/space-infix-ops": ["error"], - // "@stylistic/ts/max-statements-per-line": ["error", { "max": 1 }], - // "@stylistic/ts/multiline-ternary": ["error", "always"], - // "@stylistic/ts/newline-per-chained-call": ["error", { "ignoreChainWithDepth": 2 }], - // "@stylistic/ts/no-confusing-arrow": ["error"], - // "@stylistic/ts/no-floating-decimal": ["error"], - // "@stylistic/ts/no-mixed-operators": ["error"], - // "@stylistic/ts/no-mixed-spaces-and-tabs": ["error"],/ - // "@stylistic/ts/no-multi-spaces": ["error"], - // "@stylistic/ts/no-multiple-empty-lines": ["error", { "max": 2 }], - // "@stylistic/ts/no-tabs": ["error", { "allowIndentationTabs": true }], - // "@stylistic/ts/no-whitespace-before-property": ["error"], - // "@stylistic/ts/nonblock-statement-body-position": ["error", "below"], - // "@stylistic/ts/object-curly-newline": ["error", "always"], - // "@stylistic/ts/object-property-newline": ["error"], - // "@stylistic/ts/one-var-declaration-per-line": ["error", "always"], - // "@stylistic/ts/operator-linebreak": ["error", "before"], - // "@stylistic/ts/padded-blocks": ["error", "never"], - // "@stylistic/ts/rest-spread-spacing": ["error", "never"], - // "@stylistic/ts/semi-spacing": ["error"], - // "@stylistic/ts/semi-style": ["error", "last"], - // "@stylistic/ts/space-in-parens": ["error", "never"], - // "@stylistic/ts/space-unary-ops": ["error"], - // "@stylistic/ts/template-curly-spacing": ["error"], - // "@stylistic/ts/template-tag-spacing": ["error"], - // "@stylistic/ts/wrap-regex": ["error"], - "no-console": ["warn", { "allow": ["warn", "error"] }], - "no-debugger": "error", - "no-var": ["error"], - "eqeqeq": ["error", "always"], - "no-eval": "error", - "prefer-const": ["error", { "destructuring": "all", "ignoreReadBeforeAssign": true }], - "prettier/prettier": ["error", { "printWidth": 80 }], - "no-unused-vars": "off", // or "@typescript-eslint/no-unused-vars": "off", - "unused-imports/no-unused-imports": "error", - "unused-imports/no-unused-vars": [ - "warn", - { - "vars": "all", - "varsIgnorePattern": "^_", - "args": "after-used", - "argsIgnorePattern": "^_" - } - ], "@angular-eslint/directive-selector": [ "error", { @@ -97,125 +31,6 @@ "prefix": "app", "style": "kebab-case" } - ], - "@typescript-eslint/explicit-member-accessibility": [ - "error", - { - "accessibility": "explicit" - } - ], - "@typescript-eslint/explicit-function-return-type": [ - "error", - { - "allowExpressions": false, - "allowTypedFunctionExpressions": true, - "allowHigherOrderFunctions": false, - "allowDirectConstAssertionInArrowFunctions": false, - "allowConciseArrowFunctionExpressionsStartingWithVoid": false - } - ], - "@typescript-eslint/member-ordering": [ - "error", - { - "default": [ - "public-static-field", - "protected-static-field", - "private-static-field", - "public-instance-field", - "protected-instance-field", - "private-instance-field", - "public-constructor", - "protected-constructor", - "private-constructor", - "public-static-method", - "protected-static-method", - "private-static-method", - "public-instance-method", - "protected-instance-method", - "private-instance-method" - ] - } - ], - // https://github.com/bryanrsmith/eslint-plugin-sort-class-members -> Read Docs and replace @typescript-eslint/member-ordering - // "sort-class-members/sort-class-members": [ - // 2, - // { - // "order": [ - // "[public-properties]", - // "[protected-properties]", - // "[private-properties]", - // "everything-else" - // ], - // "groups": { - // "public-properties": [{ "type": "property", "accessibility": "public" }], - // "protected-properties": [{ "type": "property", "accessibility": "protected" }], - // "private-properties": [{ "type": "property", "accessibility": "private" }] - // } - // } - // ], - "padding-line-between-statements": [ - "error", - { "blankLine": "always", "prev": "const", "next": "*" }, - { "blankLine": "always", "prev": "let", "next": "*" }, - { "blankLine": "always", "prev": "var", "next": "*" }, - { "blankLine": "any", "prev": ["const", "let", "var"], "next": ["const", "let", "var"] } - ], - "@typescript-eslint/no-unused-vars": [ - "error", - { - "vars": "all", - "args": "after-used", - "ignoreRestSiblings": false - } - ], - "@typescript-eslint/typedef": [ - "error", - { - "arrayDestructuring": true, - "arrowParameter": false, - "memberVariableDeclaration": true, - "objectDestructuring": true, - "parameter": true, - "propertyDeclaration": true, - "variableDeclaration": false, - "variableDeclarationIgnoreFunction": true - } - ], - "import/order": [ - "error", - { - "groups": [ - "builtin", - "external", - "internal", - "parent", - "sibling", - "index" - ], - "pathGroups": [ - { - "pattern": "@angular/**", - "group": "external", - "position": "before" - }, - { - "pattern": "@app/**", - "group": "internal", - "position": "before" - }, - { - "pattern": "@env/**", - "group": "internal", - "position": "before" - } - ], - "pathGroupsExcludedImportTypes": ["builtin"], - "newlines-between": "always", - "alphabetize": { - "order": "asc", - "caseInsensitive": true - } - } ] } }, diff --git a/frontend/package.json b/frontend/package.json index ca914bb..714828b 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -46,9 +46,6 @@ "@angular-eslint/template-parser": "17.2.1", "@angular/cli": "^17.3.0", "@angular/compiler-cli": "^17.3.0", - "@stylistic/eslint-plugin": "^2.1.0", - "@stylistic/eslint-plugin-migrate": "^2.1.0", - "@stylistic/eslint-plugin-ts": "^2.1.0", "@types/crypto-js": "^4.2.2", "@types/jest": "^29.5.12", "@typescript-eslint/eslint-plugin": "6.19.0",