feat: add ESLint configuration and update scripts

This commit is contained in:
Hop In, I Have Puppies AND WiFi 2025-01-23 11:26:39 +01:00
parent 556ba08234
commit 6985f32314
Signed by: jleibl
GPG Key ID: E7B6F77BF5EDB6F7
4 changed files with 64 additions and 4 deletions

View File

@ -91,11 +91,23 @@
], ],
"scripts": [] "scripts": []
} }
},
"lint": {
"builder": "@angular-eslint/builder:lint",
"options": {
"lintFilePatterns": [
"src/**/*.ts",
"src/**/*.html"
]
}
} }
} }
} }
}, },
"cli": { "cli": {
"analytics": "33c8483f-3876-4eb5-9c9b-1001cab9b273" "analytics": "33c8483f-3876-4eb5-9c9b-1001cab9b273",
"schematicCollections": [
"angular-eslint"
]
} }
} }

BIN
bun.lockb

Binary file not shown.

43
eslint.config.js Normal file
View File

@ -0,0 +1,43 @@
// @ts-check
const eslint = require("@eslint/js");
const tseslint = require("typescript-eslint");
const angular = require("angular-eslint");
module.exports = tseslint.config(
{
files: ["**/*.ts"],
extends: [
eslint.configs.recommended,
...tseslint.configs.recommended,
...tseslint.configs.stylistic,
...angular.configs.tsRecommended,
],
processor: angular.processInlineTemplates,
rules: {
"@angular-eslint/directive-selector": [
"error",
{
type: "attribute",
prefix: "app",
style: "camelCase",
},
],
"@angular-eslint/component-selector": [
"error",
{
type: "element",
prefix: "app",
style: "kebab-case",
},
],
},
},
{
files: ["**/*.html"],
extends: [
...angular.configs.templateRecommended,
...angular.configs.templateAccessibility,
],
rules: {},
}
);

View File

@ -6,7 +6,8 @@
"start": "ng serve --proxy-config src/proxy.conf.json", "start": "ng serve --proxy-config src/proxy.conf.json",
"build": "ng build", "build": "ng build",
"watch": "ng build --watch --configuration development", "watch": "ng build --watch --configuration development",
"test": "ng test" "test": "ng test",
"lint": "ng lint"
}, },
"private": true, "private": true,
"dependencies": { "dependencies": {
@ -21,6 +22,7 @@
"@angular/platform-browser-dynamic": "^19.0.4", "@angular/platform-browser-dynamic": "^19.0.4",
"@angular/router": "^19.0.4", "@angular/router": "^19.0.4",
"keycloak-angular": "^16.1.0", "keycloak-angular": "^16.1.0",
"prettier": "^3.4.2",
"rxjs": "~7.8.1", "rxjs": "~7.8.1",
"tailwind": "4.0.0", "tailwind": "4.0.0",
"tailwindcss": "^3.4.17", "tailwindcss": "^3.4.17",
@ -32,7 +34,9 @@
"@angular/cli": "^19.0.5", "@angular/cli": "^19.0.5",
"@angular/compiler-cli": "^19.0.4", "@angular/compiler-cli": "^19.0.4",
"@types/jasmine": "~5.1.5", "@types/jasmine": "~5.1.5",
"angular-eslint": "19.0.2",
"autoprefixer": "^10.4.20", "autoprefixer": "^10.4.20",
"eslint": "^9.16.0",
"jasmine-core": "~5.2.0", "jasmine-core": "~5.2.0",
"karma": "~6.4.4", "karma": "~6.4.4",
"karma-chrome-launcher": "~3.2.0", "karma-chrome-launcher": "~3.2.0",
@ -40,6 +44,7 @@
"karma-jasmine": "~5.1.0", "karma-jasmine": "~5.1.0",
"karma-jasmine-html-reporter": "~2.1.0", "karma-jasmine-html-reporter": "~2.1.0",
"postcss": "^8.4.49", "postcss": "^8.4.49",
"typescript": "~5.5.4" "typescript": "~5.5.4",
"typescript-eslint": "8.18.0"
} }
} }