From ccde24d598e79c9dee167a8c9a7a8078d7f6b9c7 Mon Sep 17 00:00:00 2001 From: Christoph Heiss Date: Sat, 1 Jun 2024 16:03:37 +0200 Subject: [PATCH] feat(#24): frontend: add `eslint-plugin-unused-imports` to eslint Signed-off-by: Christoph Heiss --- frontend/.eslintrc.json | 6 ++-- frontend/package-lock.json | 31 +++++++++++++++++++ frontend/package.json | 1 + frontend/src/app/adapters/date-adapter.ts | 1 - frontend/src/app/app.module.ts | 1 - .../beer-pong-table-create.component.spec.ts | 2 +- .../beer-pong-table-create.component.ts | 6 +--- .../beer-pong-table-overview.component.ts | 2 +- .../login/user-login.component.spec.ts | 2 ++ .../components/login/user-login.component.ts | 3 +- .../tournament-edit.component.ts | 9 ++---- .../update-user/update-user.component.spec.ts | 2 +- .../user-detail/user-detail.component.spec.ts | 2 +- .../user-detail/user-detail.component.ts | 2 -- .../src/app/guards/logged-in.guard.spec.ts | 1 - frontend/src/app/guards/logged-in.guard.ts | 2 +- 16 files changed, 47 insertions(+), 26 deletions(-) diff --git a/frontend/.eslintrc.json b/frontend/.eslintrc.json index b1d1be3..6662a43 100644 --- a/frontend/.eslintrc.json +++ b/frontend/.eslintrc.json @@ -1,7 +1,7 @@ { "root": true, "ignorePatterns": ["projects/**/*", "dist/**/*", ".angular/**/*", "openapi-generated/**/*"], - "plugins": ["@typescript-eslint"], + "plugins": ["@typescript-eslint", "eslint-plugin-unused-imports"], "extends": ["prettier"], "overrides": [ { @@ -20,11 +20,13 @@ "accessibility": "explicit" } ], + "@typescript-eslint/no-unused-vars": "off", "brace-style": ["error", "1tbs"], "id-blacklist": "off", "id-match": "off", "no-underscore-dangle": "off", - "jsdoc/newline-after-description": "off" + "jsdoc/newline-after-description": "off", + "unused-imports/no-unused-imports": "error" } }, { diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 91226cb..c53ee4c 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -53,6 +53,7 @@ "eslint-plugin-import": "2.29.1", "eslint-plugin-jsdoc": "48.2.3", "eslint-plugin-prefer-arrow": "1.2.3", + "eslint-plugin-unused-imports": "^3.2.0", "jasmine-core": "5.1.2", "jasmine-spec-reporter": "7.0.0", "karma": "6.4.3", @@ -8924,6 +8925,36 @@ "eslint": ">=2.0.0" } }, + "node_modules/eslint-plugin-unused-imports": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-3.2.0.tgz", + "integrity": "sha512-6uXyn6xdINEpxE1MtDjxQsyXB37lfyO2yKGVVgtD7WEWQGORSOZjgrD6hBhvGv4/SO+TOlS+UnC6JppRqbuwGQ==", + "dev": true, + "dependencies": { + "eslint-rule-composer": "^0.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "6 - 7", + "eslint": "8" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + } + } + }, + "node_modules/eslint-rule-composer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz", + "integrity": "sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/eslint-scope": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.1.tgz", diff --git a/frontend/package.json b/frontend/package.json index b85b08a..0073adb 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -60,6 +60,7 @@ "eslint-plugin-import": "2.29.1", "eslint-plugin-jsdoc": "48.2.3", "eslint-plugin-prefer-arrow": "1.2.3", + "eslint-plugin-unused-imports": "^3.2.0", "jasmine-core": "5.1.2", "jasmine-spec-reporter": "7.0.0", "karma": "6.4.3", diff --git a/frontend/src/app/adapters/date-adapter.ts b/frontend/src/app/adapters/date-adapter.ts index b6c2cf7..b7491d4 100644 --- a/frontend/src/app/adapters/date-adapter.ts +++ b/frontend/src/app/adapters/date-adapter.ts @@ -1,5 +1,4 @@ import { NativeDateAdapter } from '@angular/material/core'; -import { AuthService } from '../services/auth.service'; import { Injectable } from '@angular/core'; @Injectable({ providedIn: 'root' }) diff --git a/frontend/src/app/app.module.ts b/frontend/src/app/app.module.ts index 38cee04..eea5cf4 100644 --- a/frontend/src/app/app.module.ts +++ b/frontend/src/app/app.module.ts @@ -37,7 +37,6 @@ import { CopyLinkDialogComponent } from './components/copy-link-dialog/copy-link import { TournamentOverviewComponent } from './components/tournament/tournament-overview/tournament-overview.component'; import { TournamentTeamEditComponent } from './components/tournament-team-edit/tournament-team-edit.component'; import { MatTable } from '@angular/material/table'; -import { TournamentEditComponent } from './components/tournament/tournament-edit/tournament-edit.component'; import { NgxMatTimepickerComponent, NgxMatTimepickerDirective } from 'ngx-mat-timepicker'; import { MatDatepicker } from '@angular/material/datepicker'; import { HeaderCardComponent } from './components/header-card/header-card.component'; diff --git a/frontend/src/app/components/beer-pong-table-create/beer-pong-table-create.component.spec.ts b/frontend/src/app/components/beer-pong-table-create/beer-pong-table-create.component.spec.ts index 9583659..0266e85 100644 --- a/frontend/src/app/components/beer-pong-table-create/beer-pong-table-create.component.spec.ts +++ b/frontend/src/app/components/beer-pong-table-create/beer-pong-table-create.component.spec.ts @@ -2,7 +2,7 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; import { BeerPongTableCreateComponent } from './beer-pong-table-create.component'; import { HttpClientModule } from '@angular/common/http'; -import { ActivatedRoute, RouterModule } from '@angular/router'; +import { RouterModule } from '@angular/router'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; describe('BeerPongTableCreateComponent', () => { diff --git a/frontend/src/app/components/beer-pong-table-create/beer-pong-table-create.component.ts b/frontend/src/app/components/beer-pong-table-create/beer-pong-table-create.component.ts index 0753a4e..617538b 100644 --- a/frontend/src/app/components/beer-pong-table-create/beer-pong-table-create.component.ts +++ b/frontend/src/app/components/beer-pong-table-create/beer-pong-table-create.component.ts @@ -11,11 +11,7 @@ import { } from '@angular/forms'; import { MatButtonModule } from '@angular/material/button'; import { MatCardModule } from '@angular/material/card'; -import { - BeerPongTableEndpointService, - TournamentEndpointService, - TournamentListDto, -} from 'openapi-generated'; +import { BeerPongTableEndpointService, TournamentEndpointService } from 'openapi-generated'; import { ActivatedRoute, Router } from '@angular/router'; import { MatSnackBar } from '@angular/material/snack-bar'; import { HttpErrorResponse } from '@angular/common/http'; diff --git a/frontend/src/app/components/beer-pong-table-overview/beer-pong-table-overview.component.ts b/frontend/src/app/components/beer-pong-table-overview/beer-pong-table-overview.component.ts index ca51ee9..fdf65be 100644 --- a/frontend/src/app/components/beer-pong-table-overview/beer-pong-table-overview.component.ts +++ b/frontend/src/app/components/beer-pong-table-overview/beer-pong-table-overview.component.ts @@ -1,4 +1,4 @@ -import { Component, OnInit, input, signal } from '@angular/core'; +import { Component, OnInit, signal } from '@angular/core'; import { MatSnackBar } from '@angular/material/snack-bar'; import { BeerPongTableDto, BeerPongTableEndpointService } from 'openapi-generated'; import { Router } from '@angular/router'; diff --git a/frontend/src/app/components/login/user-login.component.spec.ts b/frontend/src/app/components/login/user-login.component.spec.ts index 4a7288d..9390dde 100644 --- a/frontend/src/app/components/login/user-login.component.spec.ts +++ b/frontend/src/app/components/login/user-login.component.spec.ts @@ -5,6 +5,8 @@ import { HttpClientTestingModule } from '@angular/common/http/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { ReactiveFormsModule } from '@angular/forms'; import { MatDialogModule, MatDialogRef } from '@angular/material/dialog'; +import { MatDialogRef } from '@angular/material/dialog'; +import { MatDialogRef } from '@angular/material/dialog'; describe('LoginComponent', () => { let component: UserLoginComponent; diff --git a/frontend/src/app/components/login/user-login.component.ts b/frontend/src/app/components/login/user-login.component.ts index 62acea6..34f6cd4 100644 --- a/frontend/src/app/components/login/user-login.component.ts +++ b/frontend/src/app/components/login/user-login.component.ts @@ -1,8 +1,7 @@ -import { Component, inject } from '@angular/core'; +import { Component } from '@angular/core'; import { FormControl, FormGroup, UntypedFormBuilder, Validators } from '@angular/forms'; import { Router } from '@angular/router'; import { AuthService } from '../../services/auth.service'; -import { MatDialogRef } from '@angular/material/dialog'; import { MatSnackBar } from '@angular/material/snack-bar'; import { UserLoginDto } from '@api'; diff --git a/frontend/src/app/components/tournament/tournament-edit/tournament-edit.component.ts b/frontend/src/app/components/tournament/tournament-edit/tournament-edit.component.ts index 87e0d6a..42b4bb3 100644 --- a/frontend/src/app/components/tournament/tournament-edit/tournament-edit.component.ts +++ b/frontend/src/app/components/tournament/tournament-edit/tournament-edit.component.ts @@ -1,4 +1,4 @@ -import { DatePipe, Location, NgIf } from '@angular/common'; +import { Location, NgIf } from '@angular/common'; import { HttpErrorResponse } from '@angular/common/http'; import { Component, OnInit, input } from '@angular/core'; import { @@ -18,12 +18,7 @@ import { MatInputModule } from '@angular/material/input'; import { MatListModule } from '@angular/material/list'; import { MatSnackBar } from '@angular/material/snack-bar'; import { Router, RouterLink } from '@angular/router'; -import { - CreateTournamentDto, - TournamentEndpointService, - TournamentOverviewDto, - TournamentUpdateDto, -} from '@api'; +import { TournamentEndpointService, TournamentOverviewDto, TournamentUpdateDto } from '@api'; import { NgxMatTimepickerComponent, NgxMatTimepickerDirective } from 'ngx-mat-timepicker'; import { isValidDate } from 'rxjs/internal/util/isDate'; import { CustomDateAdapter } from 'src/app/adapters/date-adapter'; diff --git a/frontend/src/app/components/update-user/update-user.component.spec.ts b/frontend/src/app/components/update-user/update-user.component.spec.ts index 77662d2..adc2aee 100644 --- a/frontend/src/app/components/update-user/update-user.component.spec.ts +++ b/frontend/src/app/components/update-user/update-user.component.spec.ts @@ -1,7 +1,7 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; import { UpdateUserComponent } from './update-user.component'; -import { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog'; +import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { HttpClientModule } from '@angular/common/http'; describe('UpdateUserComponent', () => { diff --git a/frontend/src/app/components/user-detail/user-detail.component.spec.ts b/frontend/src/app/components/user-detail/user-detail.component.spec.ts index a01d1b8..ab6de10 100644 --- a/frontend/src/app/components/user-detail/user-detail.component.spec.ts +++ b/frontend/src/app/components/user-detail/user-detail.component.spec.ts @@ -1,7 +1,7 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; import { UserDetailComponent } from './user-detail.component'; -import { ActivatedRoute, RouterModule } from '@angular/router'; +import { RouterModule } from '@angular/router'; import { HttpClientModule } from '@angular/common/http'; describe('UserDetailComponent', () => { diff --git a/frontend/src/app/components/user-detail/user-detail.component.ts b/frontend/src/app/components/user-detail/user-detail.component.ts index d1c3ac8..1ef986e 100644 --- a/frontend/src/app/components/user-detail/user-detail.component.ts +++ b/frontend/src/app/components/user-detail/user-detail.component.ts @@ -7,8 +7,6 @@ import { UpdateUserComponent } from '../update-user/update-user.component'; import { HttpErrorResponse } from '@angular/common/http'; import { UserEndpointService, UserDetailDto } from '@api'; import { ConfirmationService } from '../../services/confirmation.service'; -import { MatCard, MatCardActions, MatCardContent, MatCardTitle } from '@angular/material/card'; -import { MatIcon } from '@angular/material/icon'; @Component({ selector: 'app-user-detail', diff --git a/frontend/src/app/guards/logged-in.guard.spec.ts b/frontend/src/app/guards/logged-in.guard.spec.ts index b8a1859..af3c485 100644 --- a/frontend/src/app/guards/logged-in.guard.spec.ts +++ b/frontend/src/app/guards/logged-in.guard.spec.ts @@ -1,6 +1,5 @@ import { inject, TestBed } from '@angular/core/testing'; -import { AuthGuard } from './auth.guard'; import { HttpClientTestingModule } from '@angular/common/http/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { ReactiveFormsModule } from '@angular/forms'; diff --git a/frontend/src/app/guards/logged-in.guard.ts b/frontend/src/app/guards/logged-in.guard.ts index 11b07c8..703e657 100644 --- a/frontend/src/app/guards/logged-in.guard.ts +++ b/frontend/src/app/guards/logged-in.guard.ts @@ -1,5 +1,5 @@ import { Injectable } from '@angular/core'; -import { CanActivateFn, Router } from '@angular/router'; +import { Router } from '@angular/router'; import { AuthService } from '../services/auth.service'; @Injectable({