Skip to content

Commit 6759f9d

Browse files
chore: integrate eslint properly
- Use ESLint in CI - Upgrade to Flat Configuration - Fix Codebase of all linting errors and warnings - Use unused imports plugin
1 parent 898af7f commit 6759f9d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+943
-947
lines changed

.eslintignore

-1
This file was deleted.

.eslintrc.json

-68
This file was deleted.

.github/workflows/build.yml

+1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ jobs:
1919
node-version: '18'
2020
cache: "pnpm"
2121
- run: pnpm install --frozen-lockfile
22+
- run: pnpm run lint:all
2223
- run: pnpm run test:all
2324
- run: pnpm run build:all
2425
- run: ./integration-tests.sh

.husky/pre-commit

+1
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
pnpm lint-staged
2+
pnpm verify:all

apps/demo-e2e/.eslintrc.json

-22
This file was deleted.

apps/demo-e2e/playwright.config.ts

-31
This file was deleted.

apps/demo-e2e/project.json

-20
This file was deleted.

apps/demo-e2e/src/example.spec.ts

-8
This file was deleted.

apps/demo/.eslintrc.json

-37
This file was deleted.

apps/demo/eslint.config.cjs

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
const nx = require('@nx/eslint-plugin');
2+
const baseConfig = require('../../eslint.config.cjs');
3+
4+
module.exports = [
5+
...baseConfig,
6+
...nx.configs['flat/angular'],
7+
...nx.configs['flat/angular-template'],
8+
{
9+
files: ['**/*.ts'],
10+
rules: {
11+
'@angular-eslint/directive-selector': [
12+
'error',
13+
{
14+
type: 'attribute',
15+
prefix: 'demo',
16+
style: 'camelCase',
17+
},
18+
],
19+
'@angular-eslint/component-selector': [
20+
'error',
21+
{
22+
type: 'element',
23+
prefix: 'demo',
24+
style: 'kebab-case',
25+
},
26+
],
27+
},
28+
}
29+
];

apps/demo/jest.config.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* eslint-disable */
1+
22
export default {
33
displayName: 'demo',
44
preset: '../../jest.preset.js',

apps/demo/project.json

-2
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,6 @@
2424
"apps/demo/src/assets"
2525
],
2626
"styles": [
27-
"node_modules/@angular-architects/paper-design/assets/css/bootstrap.css",
28-
"node_modules/@angular-architects/paper-design/assets/scss/paper-dashboard.scss",
2927
"@angular/material/prebuilt-themes/deeppurple-amber.css",
3028
"apps/demo/src/styles.css"
3129
],

apps/demo/src/app/app.component.css

-4
This file was deleted.

apps/demo/src/app/app.component.html

+23-17
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,29 @@
1-
<demo-sidebar-cmp>
2-
<div class="nav">
1+
<mat-toolbar color="primary">
2+
<span>NgRx Toolkit Demo</span>
3+
</mat-toolbar>
4+
<mat-drawer-container class="container">
5+
<mat-drawer mode="side" opened>
36
<mat-nav-list>
47
<a mat-list-item routerLink="/todo">DevTools</a>
58
<a mat-list-item routerLink="/flight-search">withRedux</a>
6-
<a mat-list-item routerLink="/flight-search-data-service-simple">withDataService (Simple)</a>
7-
<a mat-list-item routerLink="/flight-search-data-service-dynamic">withDataService (Dynamic)</a>
8-
<a mat-list-item routerLink="/flight-search-with-pagination">withPagination</a>
9-
<a mat-list-item routerLink="/flight-search-redux-connector">Redux Connector</a>
9+
<a mat-list-item routerLink="/flight-search-data-service-simple"
10+
>withDataService (Simple)</a
11+
>
12+
<a mat-list-item routerLink="/flight-search-data-service-dynamic"
13+
>withDataService (Dynamic)</a
14+
>
15+
<a mat-list-item routerLink="/flight-search-with-pagination"
16+
>withPagination</a
17+
>
18+
<a mat-list-item routerLink="/flight-search-redux-connector"
19+
>Redux Connector</a
20+
>
1021
<a mat-list-item routerLink="/todo-storage-sync">withStorageSync</a>
1122
</mat-nav-list>
12-
</div>
13-
14-
<div class="content">
15-
<mat-toolbar color="primary">
16-
<span>NGRX Toolkit Demo</span>
17-
</mat-toolbar>
18-
19-
<div class="app-container">
20-
<router-outlet></router-outlet>
23+
</mat-drawer>
24+
<mat-drawer-content>
25+
<div class="content">
26+
<router-outlet />
2127
</div>
22-
</div>
23-
</demo-sidebar-cmp>
28+
</mat-drawer-content>
29+
</mat-drawer-container>

apps/demo/src/app/app.component.ts

+18-9
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,39 @@
1-
import { SelectionModel } from '@angular/cdk/collections';
2-
import { Component, effect, inject } from '@angular/core';
3-
import { MatTableDataSource, MatTableModule } from '@angular/material/table';
1+
import { Component } from '@angular/core';
2+
import { MatTableModule } from '@angular/material/table';
43
import { MatCheckboxModule } from '@angular/material/checkbox';
5-
import { Todo, TodoStore } from './devtools/todo-store';
64
import { MatIconModule } from '@angular/material/icon';
7-
import { CategoryStore } from './category.store';
85
import { RouterLink, RouterOutlet } from '@angular/router';
9-
import { SidebarComponent } from './core/sidebar/sidebar.component';
106
import { CommonModule } from '@angular/common';
117
import { MatToolbarModule } from '@angular/material/toolbar';
12-
import { MatListItem, MatListModule } from '@angular/material/list';
8+
import { MatListModule } from '@angular/material/list';
9+
import {
10+
MatDrawer,
11+
MatDrawerContainer,
12+
MatDrawerContent,
13+
} from '@angular/material/sidenav';
1314

1415
@Component({
1516
selector: 'demo-root',
1617
templateUrl: './app.component.html',
17-
styleUrl: './app.component.css',
1818
imports: [
1919
MatTableModule,
2020
MatCheckboxModule,
2121
MatIconModule,
2222
MatListModule,
2323
RouterLink,
2424
RouterOutlet,
25-
SidebarComponent,
2625
CommonModule,
2726
MatToolbarModule,
27+
MatDrawer,
28+
MatDrawerContainer,
29+
MatDrawerContent,
2830
],
31+
styles: `
32+
.container {
33+
display: inline;
34+
}
35+
.content {
36+
margin: 4em;
37+
}`,
2938
})
3039
export class AppComponent {}

apps/demo/src/app/app.config.ts

-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { ApplicationConfig, importProvidersFrom } from '@angular/core';
22
import { provideRouter, withComponentInputBinding } from '@angular/router';
33
import { appRoutes } from './app.routes';
4-
import { provideClientHydration } from '@angular/platform-browser';
54
import { provideAnimations } from '@angular/platform-browser/animations';
65
import { provideHttpClient } from '@angular/common/http';
76
import { LayoutModule } from '@angular/cdk/layout';

apps/demo/src/app/devtools/todo-detail.component.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Component, effect, inject, input } from '@angular/core';
2-
import { MatCard, MatCardModule } from '@angular/material/card';
2+
import { MatCardModule } from '@angular/material/card';
33
import { Todo } from './todo-store';
44
import { signalStore, withState } from '@ngrx/signals';
55
import {

apps/demo/src/app/devtools/todo.component.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
import { Component, effect, inject, input } from '@angular/core';
1+
import { Component, effect, inject } from '@angular/core';
22
import { MatCheckboxModule } from '@angular/material/checkbox';
33
import { MatIconModule } from '@angular/material/icon';
44
import { MatTableDataSource, MatTableModule } from '@angular/material/table';
55
import { SelectionModel } from '@angular/cdk/collections';
66
import { Todo, TodoStore } from './todo-store';
7-
import { CategoryStore } from '../category.store';
87
import { TodoDetailComponent } from './todo-detail.component';
98

109
@Component({

0 commit comments

Comments
 (0)