mirror of
https://github.com/andwati/zitadel.git
synced 2026-10-18 05:52:51 +00:00
chore: standardised the eslint config structure accross the project (#11814)
This commit is contained in:
@@ -0,0 +1,110 @@
|
||||
import js from "@eslint/js";
|
||||
import angularPlugin from "@angular-eslint/eslint-plugin";
|
||||
import angularTemplatePlugin from "@angular-eslint/eslint-plugin-template";
|
||||
import angularTemplateParser from "@angular-eslint/template-parser";
|
||||
import tsPlugin from "@typescript-eslint/eslint-plugin";
|
||||
import tsParser from "@typescript-eslint/parser";
|
||||
import importPlugin from "eslint-plugin-import";
|
||||
import prettierConfig from "eslint-config-prettier/flat";
|
||||
import globals from "globals";
|
||||
|
||||
export default [
|
||||
{
|
||||
ignores: [
|
||||
"projects/**/*",
|
||||
"dist/**",
|
||||
"node_modules/**",
|
||||
".angular/**",
|
||||
"src/app/proto/generated/**",
|
||||
],
|
||||
},
|
||||
js.configs.recommended,
|
||||
{
|
||||
files: ["**/*.{js,mjs,cjs}"],
|
||||
languageOptions: {
|
||||
globals: {
|
||||
...globals.browser,
|
||||
...globals.node,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ["**/*.ts"],
|
||||
plugins: {
|
||||
"@typescript-eslint": tsPlugin,
|
||||
"@angular-eslint": angularPlugin,
|
||||
import: importPlugin,
|
||||
},
|
||||
languageOptions: {
|
||||
parser: tsParser,
|
||||
parserOptions: {
|
||||
project: ["tsconfig.json", "e2e/tsconfig.json"],
|
||||
createDefaultProgram: true,
|
||||
},
|
||||
},
|
||||
processor: angularTemplatePlugin.processors["extract-inline-html"],
|
||||
settings: {
|
||||
"import/resolver": {
|
||||
typescript: true,
|
||||
},
|
||||
},
|
||||
rules: {
|
||||
...tsPlugin.configs.recommended.rules,
|
||||
...importPlugin.configs.recommended.rules,
|
||||
// Proto imports are generated at build time and don't exist during lint
|
||||
"import/no-unresolved": "off",
|
||||
"no-unused-vars": "off",
|
||||
"no-undef": "off",
|
||||
"@typescript-eslint/no-unused-vars": [
|
||||
"warn",
|
||||
{ argsIgnorePattern: "^_" },
|
||||
],
|
||||
"@typescript-eslint/no-explicit-any": "off",
|
||||
"@typescript-eslint/ban-ts-comment": "off",
|
||||
"@typescript-eslint/no-unused-expressions": "off",
|
||||
"@typescript-eslint/no-require-imports": "off",
|
||||
"@typescript-eslint/no-unsafe-function-type": "off",
|
||||
"@typescript-eslint/no-wrapper-object-types": "off",
|
||||
"@typescript-eslint/no-empty-object-type": "off",
|
||||
"no-case-declarations": "off",
|
||||
...angularPlugin.configs.recommended.rules,
|
||||
// Disable rules added in angular-eslint 21.x that weren't in the original 18.x config
|
||||
"@angular-eslint/prefer-inject": "off",
|
||||
"@angular-eslint/prefer-standalone": "off",
|
||||
"@angular-eslint/no-conflicting-lifecycle": "off",
|
||||
"@angular-eslint/no-host-metadata-property": "off",
|
||||
"@angular-eslint/component-selector": [
|
||||
"error",
|
||||
{
|
||||
prefix: "cnsl",
|
||||
style: "kebab-case",
|
||||
type: "element",
|
||||
},
|
||||
],
|
||||
"@angular-eslint/directive-selector": [
|
||||
"error",
|
||||
{
|
||||
prefix: "cnsl",
|
||||
style: "camelCase",
|
||||
type: "attribute",
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ["**/*.html"],
|
||||
plugins: {
|
||||
"@angular-eslint/template": angularTemplatePlugin,
|
||||
},
|
||||
languageOptions: {
|
||||
parser: angularTemplateParser,
|
||||
},
|
||||
rules: {
|
||||
...angularTemplatePlugin.configs.recommended.rules,
|
||||
// Disable rules added in angular-eslint 21.x that weren't in the original 18.x config
|
||||
"@angular-eslint/template/prefer-control-flow": "off",
|
||||
"@angular-eslint/template/eqeqeq": "off",
|
||||
},
|
||||
},
|
||||
prettierConfig,
|
||||
];
|
||||
Reference in New Issue
Block a user