Add prettier & eslint
This commit is contained in:
14
.prettierignore
Normal file
14
.prettierignore
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# Ignore artifacts:
|
||||||
|
build
|
||||||
|
coverage
|
||||||
|
dist
|
||||||
|
out
|
||||||
|
public
|
||||||
|
styles
|
||||||
|
node_modules
|
||||||
|
.vscode
|
||||||
|
.angular
|
||||||
|
*.md
|
||||||
|
*.yml
|
||||||
|
/tsconfig.json
|
||||||
|
*.json
|
||||||
29
.prettierrc.json
Normal file
29
.prettierrc.json
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"useTabs": false,
|
||||||
|
"tabWidth": 4,
|
||||||
|
"trailingComma": "none",
|
||||||
|
"semi": true,
|
||||||
|
"singleQuote": true,
|
||||||
|
"printWidth": 250,
|
||||||
|
"bracketSameLine": false,
|
||||||
|
"overrides": [
|
||||||
|
{
|
||||||
|
"files": ["*.ts", "*.mts", "*.d.ts"],
|
||||||
|
"options": {
|
||||||
|
"parser": "typescript"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"files": ["*.html"],
|
||||||
|
"options": {
|
||||||
|
"parser": "html"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"files": ["*.component.html"],
|
||||||
|
"options": {
|
||||||
|
"parser": "angular"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
89
eslint.config.js
Normal file
89
eslint.config.js
Normal file
@@ -0,0 +1,89 @@
|
|||||||
|
export default {
|
||||||
|
root: true,
|
||||||
|
ignorePatterns: ['**/dist/**'],
|
||||||
|
plugins: ['prettier'],
|
||||||
|
extends: ['prettier'],
|
||||||
|
rules: {
|
||||||
|
'padding-line-between-statements': [
|
||||||
|
'error',
|
||||||
|
{ blankLine: 'always', prev: ['const', 'let', 'var'], next: '*' },
|
||||||
|
{ blankLine: 'any', prev: ['const', 'let', 'var'], next: ['const', 'let', 'var'] },
|
||||||
|
{ blankLine: 'any', prev: ['case', 'default'], next: 'break' },
|
||||||
|
{ blankLine: 'any', prev: 'case', next: 'case' },
|
||||||
|
{ blankLine: 'always', prev: '*', next: 'return' },
|
||||||
|
{ blankLine: 'always', prev: 'block', next: '*' },
|
||||||
|
{ blankLine: 'always', prev: '*', next: 'block' },
|
||||||
|
{ blankLine: 'always', prev: 'block-like', next: '*' },
|
||||||
|
{ blankLine: 'always', prev: '*', next: 'block-like' },
|
||||||
|
{ blankLine: 'always', prev: ['import'], next: ['const', 'let', 'var'] }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
overrides: [
|
||||||
|
{
|
||||||
|
files: ['*.ts'],
|
||||||
|
parserOptions: {
|
||||||
|
project: ['tsconfig.json', 'e2e/tsconfig.json'],
|
||||||
|
createDefaultProgram: true
|
||||||
|
},
|
||||||
|
extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'plugin:@angular-eslint/recommended', 'plugin:@angular-eslint/template/process-inline-templates', 'prettier'],
|
||||||
|
rules: {
|
||||||
|
'@angular-eslint/component-selector': [
|
||||||
|
'error',
|
||||||
|
{
|
||||||
|
type: 'element',
|
||||||
|
prefix: 'p',
|
||||||
|
style: 'kebab-case'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
'@angular-eslint/directive-selector': [
|
||||||
|
'error',
|
||||||
|
{
|
||||||
|
type: 'attribute',
|
||||||
|
prefix: 'p',
|
||||||
|
style: 'camelCase'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
'@angular-eslint/component-class-suffix': [
|
||||||
|
'error',
|
||||||
|
{
|
||||||
|
suffixes: ['']
|
||||||
|
}
|
||||||
|
],
|
||||||
|
'@angular-eslint/template/eqeqeq': [
|
||||||
|
'error',
|
||||||
|
{
|
||||||
|
allowNullOrUndefined: true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
'@angular-eslint/no-host-metadata-property': 'off',
|
||||||
|
'@angular-eslint/no-output-on-prefix': 'off',
|
||||||
|
'@typescript-eslint/ban-types': 'off',
|
||||||
|
'@typescript-eslint/no-explicit-any': 'off',
|
||||||
|
'@typescript-eslint/no-inferrable-types': 'off',
|
||||||
|
'arrow-body-style': ['error', 'as-needed'],
|
||||||
|
curly: 0,
|
||||||
|
'@typescript-eslint/member-ordering': [
|
||||||
|
'error',
|
||||||
|
{
|
||||||
|
default: ['public-static-field', 'static-field', 'instance-field', 'public-instance-method', 'public-static-field']
|
||||||
|
}
|
||||||
|
],
|
||||||
|
'no-console': 0,
|
||||||
|
'prefer-const': 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
files: ['*.html'],
|
||||||
|
extends: ['plugin:@angular-eslint/template/recommended', 'prettier'],
|
||||||
|
rules: {}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
files: ['*.js'],
|
||||||
|
rules: {
|
||||||
|
parserOptions: {
|
||||||
|
allowImportExportEverywhere: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
2053
package-lock.json
generated
2053
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -37,6 +37,12 @@
|
|||||||
"karma-coverage": "~2.2.0",
|
"karma-coverage": "~2.2.0",
|
||||||
"karma-jasmine": "~5.1.0",
|
"karma-jasmine": "~5.1.0",
|
||||||
"karma-jasmine-html-reporter": "~2.1.0",
|
"karma-jasmine-html-reporter": "~2.1.0",
|
||||||
"typescript": "~5.6.2"
|
"typescript": "~5.6.2",
|
||||||
|
"eslint-config-prettier": "^9.1.0",
|
||||||
|
"eslint-plugin-import": "^2.31.0",
|
||||||
|
"eslint-plugin-prefer-arrow": "^1.2.3",
|
||||||
|
"eslint-plugin-prettier": "^4.2.1",
|
||||||
|
"prettier": "^3.0.0",
|
||||||
|
"eslint": "^9.14.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,10 @@
|
|||||||
"moduleResolution": "bundler",
|
"moduleResolution": "bundler",
|
||||||
"importHelpers": true,
|
"importHelpers": true,
|
||||||
"target": "ES2022",
|
"target": "ES2022",
|
||||||
"module": "ES2022"
|
"module": "ES2022",
|
||||||
|
"paths": {
|
||||||
|
"@/*": ["./*"]
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"angularCompilerOptions": {
|
"angularCompilerOptions": {
|
||||||
"enableI18nLegacyMessageIdFormat": false,
|
"enableI18nLegacyMessageIdFormat": false,
|
||||||
|
|||||||
Reference in New Issue
Block a user