From 93c5710787360c8eca8e1d4b27032b3bd03cae72 Mon Sep 17 00:00:00 2001 From: Igor Propisnov Date: Fri, 17 May 2024 21:40:33 +0200 Subject: [PATCH] added linter --- frontend/.eslintrc.json | 22 +++++++++++++++++++--- frontend/package.json | 1 + frontend/pnpm-lock.yaml | 12 ++++++++++++ 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/frontend/.eslintrc.json b/frontend/.eslintrc.json index f82da03..2a5ce1f 100644 --- a/frontend/.eslintrc.json +++ b/frontend/.eslintrc.json @@ -1,7 +1,7 @@ { "root": true, "ignorePatterns": ["projects/**/*"], - "plugins": ["import", "prettier", "@stylistic/eslint-plugin-ts"], + "plugins": ["import", "prettier", "@stylistic/eslint-plugin-ts", "sort-class-members"], "overrides": [ { "files": ["*.ts"], @@ -24,7 +24,6 @@ ] } ], - // Docs for line padding => https://eslint.style/rules/js/padding-line-between-statements "@stylistic/ts/block-spacing": ["error"], "@stylistic/ts/brace-style": "off", "@stylistic/ts/key-spacing": ["error", { "afterColon": true }], @@ -122,6 +121,23 @@ ] } ], + // 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": "*" }, @@ -141,7 +157,7 @@ "error", { "arrayDestructuring": true, - "arrowParameter": true, + "arrowParameter": false, "memberVariableDeclaration": true, "objectDestructuring": true, "parameter": true, diff --git a/frontend/package.json b/frontend/package.json index aa8a57d..ac6e9a7 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -53,6 +53,7 @@ "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.29.1", "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-sort-class-members": "^1.20.0", "jest": "^29.7.0", "jest-preset-angular": "^14.0.3", "prettier": "3.2.5", diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml index 54ed2f2..ee7656a 100644 --- a/frontend/pnpm-lock.yaml +++ b/frontend/pnpm-lock.yaml @@ -100,6 +100,9 @@ devDependencies: eslint-plugin-prettier: specifier: ^5.1.3 version: 5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5) + eslint-plugin-sort-class-members: + specifier: ^1.20.0 + version: 1.20.0(eslint@8.57.0) jest: specifier: ^29.7.0 version: 29.7.0 @@ -5422,6 +5425,15 @@ packages: synckit: 0.8.8 dev: true + /eslint-plugin-sort-class-members@1.20.0(eslint@8.57.0): + resolution: {integrity: sha512-xNaik4GQ/pRwd1soIVI28HEXZbrWoLR5krau2+E8YcHj7N09UviPg5mYhf/rELG29bIFJdXDOFJazN90+luMOw==} + engines: {node: '>=4.0.0'} + peerDependencies: + eslint: '>=0.8.0' + dependencies: + eslint: 8.57.0 + dev: true + /eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'}