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-jasmine": "~5.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",
|
||||
"importHelpers": true,
|
||||
"target": "ES2022",
|
||||
"module": "ES2022"
|
||||
"module": "ES2022",
|
||||
"paths": {
|
||||
"@/*": ["./*"]
|
||||
}
|
||||
},
|
||||
"angularCompilerOptions": {
|
||||
"enableI18nLegacyMessageIdFormat": false,
|
||||
|
||||
Reference in New Issue
Block a user