Replaced checked in package-lock.json by regenerated one. Ran ng update @angular/core@20 @angular/cli@20 Ran npm install @angular-builders/jest@^20.0.0 @fortawesome/angular-fontawesome@^3.0.0 @swimlane/ngx-graph@^11 Ran npm install ngx-mat-select-search@^8.0.2. Ran ng update @angular/material@20. Updated all eslint and typescript to the latest versions. Removed @angular-devkit/schematics. Updated fontawesome. Updated rxjs and tslib. Moved required node version from 16 to 20. Updated jest-preset-angular. Set preserveWhitespaces to false. Corrected two type declarations in two typescript files to make ng serve run without errors. Removed unused angular-devkit/schematics from view-user.component.ts . Updated list of supported browsers. Upgraded prettier. Ran prettier . --write the first time. Ran prettier . --write the second time. Ran ng generate @angular/core:inject with defaults, excepted a handful of files. Fixed remaining eslint problems. Added dist directory to ignores in eslint.config.js. Let prettier fix formatting, almost everything is just line breaks. Made htmlhint ignore @if and @for Angular constructs. Updated node version in Github workflow to 22.12.0 (build.yml). Updated .env.ts. Updated Angular datetime format strings from YYYY-MM-DD to yyyy-MM-dd. Merged changes from dev into angular20 branch.
78 lines
1.9 KiB
JavaScript
78 lines
1.9 KiB
JavaScript
// eslint.config.js
|
|
const angularEslintPlugin = require('@angular-eslint/eslint-plugin');
|
|
const angularEslintTemplatePlugin = require('@angular-eslint/eslint-plugin-template');
|
|
const angularTemplateParser = require('@angular-eslint/template-parser');
|
|
const tseslint = require('@typescript-eslint/eslint-plugin');
|
|
const tsParser = require('@typescript-eslint/parser');
|
|
|
|
module.exports = [
|
|
{
|
|
ignores: [
|
|
'projects/**/*',
|
|
'dist/**/*'
|
|
]
|
|
},
|
|
|
|
// TS files configuration
|
|
{
|
|
files: ['**/*.ts'],
|
|
languageOptions: {
|
|
parser: tsParser,
|
|
parserOptions: {
|
|
project: [
|
|
'tsconfig.json',
|
|
'e2e/tsconfig.json'
|
|
],
|
|
createDefaultProgram: true
|
|
}
|
|
},
|
|
plugins: {
|
|
'@angular-eslint': angularEslintPlugin,
|
|
'@angular-eslint/template': angularEslintTemplatePlugin,
|
|
'@typescript-eslint': tseslint
|
|
},
|
|
rules: {
|
|
// Angular recommended rules
|
|
...angularEslintPlugin.configs.recommended.rules,
|
|
|
|
// Angular template inline rules
|
|
...angularEslintTemplatePlugin.configs['process-inline-templates'].rules,
|
|
|
|
// Component selector rules
|
|
'@angular-eslint/component-selector': [
|
|
'error',
|
|
{
|
|
prefix: 'mifosx',
|
|
style: 'kebab-case',
|
|
type: 'element'
|
|
}
|
|
],
|
|
'@angular-eslint/directive-selector': [
|
|
'error',
|
|
{
|
|
prefix: 'mifosx',
|
|
style: 'camelCase',
|
|
type: 'attribute'
|
|
}
|
|
]
|
|
}
|
|
},
|
|
|
|
// HTML files configurationNN
|
|
|
|
{
|
|
files: ['**/*.html'],
|
|
languageOptions: {
|
|
parser: angularTemplateParser
|
|
},
|
|
plugins: {
|
|
'@angular-eslint': angularEslintPlugin,
|
|
'@angular-eslint/template': angularEslintTemplatePlugin
|
|
},
|
|
rules: {
|
|
// Angular template recommended rules
|
|
...angularEslintTemplatePlugin.configs.recommended.rules
|
|
}
|
|
}
|
|
];
|