Update config files
This commit is contained in:
parent
d3596fc7e9
commit
96407def3f
@ -5,7 +5,9 @@ linters-settings:
|
|||||||
sections:
|
sections:
|
||||||
- standard
|
- standard
|
||||||
- default
|
- default
|
||||||
- prefix(go.yrps.dev)
|
- prefix(go.c3c.cz)
|
||||||
|
forbidigo:
|
||||||
|
analyze-types: true
|
||||||
gocritic:
|
gocritic:
|
||||||
enabled-tags:
|
enabled-tags:
|
||||||
- diagnostic
|
- diagnostic
|
||||||
@ -26,8 +28,16 @@ linters-settings:
|
|||||||
require-explanation: true
|
require-explanation: true
|
||||||
require-specific: true
|
require-specific: true
|
||||||
sloglint:
|
sloglint:
|
||||||
no-global: "all"
|
attr-only: true
|
||||||
context: "scope"
|
context: scope
|
||||||
|
forbidden-keys:
|
||||||
|
- time
|
||||||
|
- level
|
||||||
|
- msg
|
||||||
|
- source
|
||||||
|
key-naming-case: snake
|
||||||
|
no-global: all
|
||||||
|
static-msg: true
|
||||||
stylecheck:
|
stylecheck:
|
||||||
checks:
|
checks:
|
||||||
- all
|
- all
|
||||||
@ -40,12 +50,15 @@ linters:
|
|||||||
enable:
|
enable:
|
||||||
- bidichk
|
- bidichk
|
||||||
- bodyclose
|
- bodyclose
|
||||||
|
- canonicalheader
|
||||||
- copyloopvar
|
- copyloopvar
|
||||||
- errcheck
|
- errcheck
|
||||||
- errorlint
|
- errorlint
|
||||||
- exhaustive
|
- exhaustive
|
||||||
|
- forbidigo
|
||||||
- gci
|
- gci
|
||||||
- gocheckcompilerdirectives
|
- gocheckcompilerdirectives
|
||||||
|
- gochecksumtype
|
||||||
- goconst
|
- goconst
|
||||||
- gocritic
|
- gocritic
|
||||||
- gofumpt
|
- gofumpt
|
||||||
@ -53,20 +66,30 @@ linters:
|
|||||||
- gosimple
|
- gosimple
|
||||||
- govet
|
- govet
|
||||||
- ineffassign
|
- ineffassign
|
||||||
|
- makezero
|
||||||
|
- mirror
|
||||||
- misspell
|
- misspell
|
||||||
|
- nakedret
|
||||||
|
- nilnil
|
||||||
- noctx
|
- noctx
|
||||||
- nolintlint
|
- nolintlint
|
||||||
|
- nosprintfhostport
|
||||||
|
- perfsprint
|
||||||
- prealloc
|
- prealloc
|
||||||
- predeclared
|
- predeclared
|
||||||
- protogetter
|
- protogetter
|
||||||
- sloglint
|
- sloglint
|
||||||
|
- spancheck
|
||||||
- staticcheck
|
- staticcheck
|
||||||
- stylecheck
|
- stylecheck
|
||||||
- unconvert
|
- unconvert
|
||||||
|
- unconvert
|
||||||
- unparam
|
- unparam
|
||||||
- unused
|
- unused
|
||||||
- whitespace
|
- whitespace
|
||||||
- usestdlibvars
|
- usestdlibvars
|
||||||
|
- wastedassign
|
||||||
|
- whitespace
|
||||||
- wsl
|
- wsl
|
||||||
|
|
||||||
issues:
|
issues:
|
||||||
|
|||||||
152
eslint.config.mjs
Normal file
152
eslint.config.mjs
Normal file
@ -0,0 +1,152 @@
|
|||||||
|
import jseslint from "@eslint/js";
|
||||||
|
import eslintPluginImportX from "eslint-plugin-import-x";
|
||||||
|
import eslintPluginPrettierRecommended from "eslint-plugin-prettier/recommended";
|
||||||
|
import eslintPluginReact from "eslint-plugin-react";
|
||||||
|
import eslintPluginReactHooks from "eslint-plugin-react-hooks";
|
||||||
|
import eslintPluginReactRefresh from "eslint-plugin-react-refresh";
|
||||||
|
import eslintPluginFormatjs from "eslint-plugin-formatjs";
|
||||||
|
import tseslint from "typescript-eslint";
|
||||||
|
|
||||||
|
// This config is provided through nix environment.
|
||||||
|
// Config is meant to be injected through devshell env variable and "cp" command in .envrc to copy it in the proper path
|
||||||
|
|
||||||
|
// Install dependencies: npm i -D @eslint/js@9 eslint-plugin-import-x@4 eslint-plugin-prettier@5 eslint-plugin-react@7 eslint-plugin-react-hooks@5 eslint-plugin-react-refresh@0.4 eslint-plugin-formatjs@5 typescript-eslint@8
|
||||||
|
|
||||||
|
export default tseslint.config(
|
||||||
|
{
|
||||||
|
ignores: [
|
||||||
|
"build/",
|
||||||
|
"dist/",
|
||||||
|
"tsconfig.json",
|
||||||
|
"tsconfig.*.json",
|
||||||
|
"eslint.config.mjs",
|
||||||
|
],
|
||||||
|
},
|
||||||
|
jseslint.configs.recommended,
|
||||||
|
...tseslint.configs.recommendedTypeChecked,
|
||||||
|
eslintPluginImportX.flatConfigs.recommended,
|
||||||
|
eslintPluginImportX.flatConfigs.typescript,
|
||||||
|
eslintPluginReact.configs.flat.recommended,
|
||||||
|
eslintPluginPrettierRecommended,
|
||||||
|
{
|
||||||
|
languageOptions: {
|
||||||
|
parserOptions: {
|
||||||
|
tsconfigRootDir: import.meta.dirname,
|
||||||
|
project: "./tsconfig.json",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
settings: {
|
||||||
|
react: {
|
||||||
|
version: "detect",
|
||||||
|
},
|
||||||
|
"import-x/resolver": {
|
||||||
|
typescript: true,
|
||||||
|
node: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
plugins: {
|
||||||
|
"react-hooks": eslintPluginReactHooks,
|
||||||
|
"react-refresh": eslintPluginReactRefresh,
|
||||||
|
formatjs: eslintPluginFormatjs,
|
||||||
|
},
|
||||||
|
rules: {
|
||||||
|
curly: ["error"],
|
||||||
|
"no-console": ["warn"],
|
||||||
|
"no-constant-condition": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
checkLoops: "allExceptWhileTrue",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
|
||||||
|
// Typescript
|
||||||
|
// Some non typescript rules must be disabled as they can report incorrect errors
|
||||||
|
"default-param-last": "off",
|
||||||
|
"@typescript-eslint/default-param-last": "error",
|
||||||
|
"dot-notation": "off",
|
||||||
|
"@typescript-eslint/dot-notation": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
allowKeywords: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
"@typescript-eslint/naming-convention": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
selector: ["function", "import"],
|
||||||
|
format: ["camelCase", "PascalCase"],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
selector: ["variable"],
|
||||||
|
format: ["camelCase", "PascalCase", "UPPER_CASE"],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
selector: ["enum", "typeLike"],
|
||||||
|
format: ["PascalCase"],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
"@typescript-eslint/no-unused-vars": [
|
||||||
|
"warn",
|
||||||
|
{
|
||||||
|
args: "after-used",
|
||||||
|
caughtErrors: "all",
|
||||||
|
caughtErrorsIgnorePattern: "^_$",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
"no-use-before-define": "off",
|
||||||
|
"@typescript-eslint/no-use-before-define": "error",
|
||||||
|
"@typescript-eslint/no-misused-promises": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
checksVoidReturn: {
|
||||||
|
attributes: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
"no-shadow": "off",
|
||||||
|
"@typescript-eslint/no-shadow": "error",
|
||||||
|
"no-loop-func": "off",
|
||||||
|
"@typescript-eslint/no-loop-func": "error",
|
||||||
|
"no-useless-constructor": "off",
|
||||||
|
"@typescript-eslint/no-useless-constructor": "error",
|
||||||
|
"no-return-await": "off",
|
||||||
|
"@typescript-eslint/return-await": "error",
|
||||||
|
"@typescript-eslint/prefer-promise-reject-errors": ["off"],
|
||||||
|
|
||||||
|
// Import
|
||||||
|
"import-x/no-extraneous-dependencies": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
devDependencies: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
// Some issues with react import, no time to debug
|
||||||
|
"import-x/default": ["off"],
|
||||||
|
|
||||||
|
"prettier/prettier": "warn",
|
||||||
|
|
||||||
|
// React
|
||||||
|
"react-hooks/exhaustive-deps": "error",
|
||||||
|
"react-refresh/only-export-components": "warn",
|
||||||
|
"react/jsx-no-duplicate-props": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
ignoreCase: false,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
|
||||||
|
"react/prop-types": "off",
|
||||||
|
"react/react-in-jsx-scope": "off",
|
||||||
|
|
||||||
|
// FormaJS/INTL
|
||||||
|
"formatjs/enforce-default-message": "error",
|
||||||
|
"formatjs/enforce-id": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
idInterpolationPattern: "[sha1:contenthash:base64:6]",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
"formatjs/no-id": "off",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
);
|
||||||
Loading…
Reference in New Issue
Block a user