Moved to Angular v20 and Tailwind v4 plus all related dependencies

Renamed Docker directory.

Also serving static files from FastAPI.
This commit is contained in:
2025-06-25 08:19:37 +00:00
parent 05b395af00
commit cb2b650375
253 changed files with 8626 additions and 1995 deletions

View File

@ -1,74 +1,70 @@
// @ts-check
const eslint = require("@eslint/js");
const tseslint = require("typescript-eslint");
const angular = require("angular-eslint");
const eslintConfigPrettier = require("eslint-config-prettier");
// const plugin_import = require("eslint-plugin-import");
const unusedImports = require("eslint-plugin-unused-imports");
// const deprecation = require("eslint-plugin-deprecation");
const eslint = require('@eslint/js');
const tseslint = require('typescript-eslint');
const angular = require('angular-eslint');
const eslintConfigPrettier = require('eslint-config-prettier');
const unusedImports = require('eslint-plugin-unused-imports');
const perfectionist = require('eslint-plugin-perfectionist');
module.exports = tseslint.config(
{
files: ["**/*.ts"],
files: ['**/*.ts'],
extends: [
eslint.configs.recommended,
...tseslint.configs.recommended,
...tseslint.configs.stylistic,
...angular.configs.tsRecommended,
eslintConfigPrettier
eslintConfigPrettier,
],
processor: angular.processInlineTemplates,
plugins: {
unusedImports: unusedImports,
perfectionist: perfectionist,
},
rules: {
"@angular-eslint/directive-selector": [
"error",
'@angular-eslint/directive-selector': [
'error',
{
type: "attribute",
prefix: "app",
style: "camelCase",
type: 'attribute',
prefix: 'app',
style: 'camelCase',
},
],
"@angular-eslint/component-selector": [
"error",
'@angular-eslint/component-selector': [
'error',
{
type: "element",
prefix: "app",
style: "kebab-case",
type: 'element',
prefix: 'app',
style: 'kebab-case',
},
],
"@/lines-between-class-members": [
"error",
"always",
'@angular-eslint/prefer-inject': 'error',
'@/lines-between-class-members': [
'error',
'always',
{
"exceptAfterSingleLine": true
}
exceptAfterSingleLine: true,
},
],
// "import/order": [
// "error",
// {
// "alphabetize": {
// "order": "asc",
// "caseInsensitive": true
// },
// "newlines-between": "always"
// }
// ],
"@typescript-eslint/no-explicit-any": [
"error"
'no-duplicate-imports': 'error',
'@typescript-eslint/no-explicit-any': ['error'],
'unusedImports/no-unused-imports': 'error',
'@typescript-eslint/no-empty-function': 'off',
'perfectionist/sort-imports': [
'error',
{
type: 'natural',
order: 'asc',
},
],
"unusedImports/no-unused-imports": "error",
"@typescript-eslint/no-empty-function": "off",
// "deprecation/deprecation": "warn"
},
},
},
{
files: ["**/*.html"],
files: ['**/*.html'],
extends: [
...angular.configs.templateRecommended,
// ...angular.configs.templateAccessibility,
],
rules: {},
}
},
);