chore(eslint): migrate config (#1518)
Reviewed-on: daoyoucloud/tachybase#1518 Co-authored-by: TomyJan <TomyJan6@gmail.com> Co-committed-by: TomyJan <TomyJan6@gmail.com>
This commit is contained in:
parent
72f29a0c58
commit
17845e4a80
@ -1,34 +0,0 @@
|
|||||||
node_modules
|
|
||||||
lib
|
|
||||||
dist
|
|
||||||
build
|
|
||||||
coverage
|
|
||||||
expected
|
|
||||||
website
|
|
||||||
gh-pages
|
|
||||||
weex
|
|
||||||
build.ts
|
|
||||||
packages/vue
|
|
||||||
packages/element
|
|
||||||
esm
|
|
||||||
doc-site
|
|
||||||
public
|
|
||||||
packages/*/*/client.d.ts
|
|
||||||
packages/*/*/server.d.ts
|
|
||||||
packages/*/*/client.js
|
|
||||||
packages/*/*/server.js
|
|
||||||
packages/core/build
|
|
||||||
packages/core/devtools
|
|
||||||
packages/core/database/src/sql-parser/index.js
|
|
||||||
**/.dumi/tmp
|
|
||||||
**/.dumi/tmp-test
|
|
||||||
**/.dumi/tmp-production
|
|
||||||
packages/core/cli/templates/plugin/src/client/*.tpl
|
|
||||||
packages/app/client/src/.plugins
|
|
||||||
docker
|
|
||||||
storage
|
|
||||||
benchmark
|
|
||||||
packages/core/cli/src
|
|
||||||
packages/core/cli/bin
|
|
||||||
# temp
|
|
||||||
packages/plugins/@hera/plugin-core/src/client/features/departments/index.tsx
|
|
80
.eslintrc
80
.eslintrc
@ -1,80 +0,0 @@
|
|||||||
{
|
|
||||||
"env": {
|
|
||||||
"node": true,
|
|
||||||
"es6": true,
|
|
||||||
"browser": true
|
|
||||||
},
|
|
||||||
"extends": [
|
|
||||||
"eslint:recommended",
|
|
||||||
"plugin:@typescript-eslint/recommended",
|
|
||||||
"plugin:react/recommended",
|
|
||||||
"plugin:react-hooks/recommended",
|
|
||||||
"plugin:promise/recommended",
|
|
||||||
// "plugin:import/recommended",
|
|
||||||
"plugin:prettier/recommended"
|
|
||||||
],
|
|
||||||
"parser": "@typescript-eslint/parser",
|
|
||||||
"plugins": [
|
|
||||||
"@typescript-eslint",
|
|
||||||
"react",
|
|
||||||
"react-hooks",
|
|
||||||
"prettier",
|
|
||||||
"promise",
|
|
||||||
"jest-dom",
|
|
||||||
"testing-library"
|
|
||||||
//"import"
|
|
||||||
],
|
|
||||||
"globals": {
|
|
||||||
"sleep": true,
|
|
||||||
"prettyFormat": true
|
|
||||||
},
|
|
||||||
"settings": {
|
|
||||||
"react": {
|
|
||||||
"version": "detect"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"parserOptions": {
|
|
||||||
"ecmaVersion": 11,
|
|
||||||
"sourceType": "module",
|
|
||||||
"ecmaFeatures": {
|
|
||||||
"jsx": true
|
|
||||||
},
|
|
||||||
"project": "./tsconfig.json"
|
|
||||||
},
|
|
||||||
"rules": {
|
|
||||||
"@typescript-eslint/no-this-alias": "off",
|
|
||||||
"@typescript-eslint/ban-types": "off",
|
|
||||||
"no-unused-vars": "off",
|
|
||||||
"no-useless-catch": "off",
|
|
||||||
"@typescript-eslint/no-unused-vars": "off",
|
|
||||||
"no-empty-function": "off",
|
|
||||||
"@typescript-eslint/no-empty-function": "off",
|
|
||||||
"react/display-name": "off",
|
|
||||||
"react/prop-types": "off",
|
|
||||||
"no-explicit-any": "off",
|
|
||||||
"@typescript-eslint/no-explicit-any": "off",
|
|
||||||
"@typescript-eslint/ban-ts-comment": "off",
|
|
||||||
"@typescript-eslint/no-var-requires": "off",
|
|
||||||
"promise/always-return": "off"
|
|
||||||
},
|
|
||||||
"overrides": [
|
|
||||||
{
|
|
||||||
"files": [
|
|
||||||
"**/e2e/**/*.{ts,js,tsx,jsx}",
|
|
||||||
"**/__e2e__/**/*.{ts,js,tsx,jsx}"
|
|
||||||
],
|
|
||||||
"rules": {
|
|
||||||
"@typescript-eslint/no-floating-promises": "error"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"files": [
|
|
||||||
"packages/plugins/@hera/**/*.{ts,js,tsx,jsx}",
|
|
||||||
"packages/plugins/@hera/**/*.{ts,js,tsx,jsx}"
|
|
||||||
],
|
|
||||||
"rules": {
|
|
||||||
"eqeqeq": ["error", "smart"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
137
eslint.config.mjs
Normal file
137
eslint.config.mjs
Normal file
@ -0,0 +1,137 @@
|
|||||||
|
import { fixupConfigRules, fixupPluginRules } from "@eslint/compat";
|
||||||
|
import typescriptEslint from "@typescript-eslint/eslint-plugin";
|
||||||
|
import react from "eslint-plugin-react";
|
||||||
|
import reactHooks from "eslint-plugin-react-hooks";
|
||||||
|
import prettier from "eslint-plugin-prettier";
|
||||||
|
import promise from "eslint-plugin-promise";
|
||||||
|
import jestDom from "eslint-plugin-jest-dom";
|
||||||
|
import testingLibrary from "eslint-plugin-testing-library";
|
||||||
|
import globals from "globals";
|
||||||
|
import tsParser from "@typescript-eslint/parser";
|
||||||
|
import path from "node:path";
|
||||||
|
import { fileURLToPath } from "node:url";
|
||||||
|
import js from "@eslint/js";
|
||||||
|
import { FlatCompat } from "@eslint/eslintrc";
|
||||||
|
|
||||||
|
const __filename = fileURLToPath(import.meta.url);
|
||||||
|
const __dirname = path.dirname(__filename);
|
||||||
|
const compat = new FlatCompat({
|
||||||
|
baseDirectory: __dirname,
|
||||||
|
recommendedConfig: js.configs.recommended,
|
||||||
|
allConfig: js.configs.all
|
||||||
|
});
|
||||||
|
|
||||||
|
export default [{
|
||||||
|
ignores: [
|
||||||
|
"**/node_modules",
|
||||||
|
"**/lib",
|
||||||
|
"**/dist",
|
||||||
|
"**/build",
|
||||||
|
"**/coverage",
|
||||||
|
"**/expected",
|
||||||
|
"**/website",
|
||||||
|
"**/gh-pages",
|
||||||
|
"**/weex",
|
||||||
|
"**/build.ts",
|
||||||
|
"packages/vue",
|
||||||
|
"packages/element",
|
||||||
|
"**/esm",
|
||||||
|
"**/doc-site",
|
||||||
|
"**/public",
|
||||||
|
"packages/*/*/client.d.ts",
|
||||||
|
"packages/*/*/server.d.ts",
|
||||||
|
"packages/*/*/client.js",
|
||||||
|
"packages/*/*/server.js",
|
||||||
|
"packages/core/build",
|
||||||
|
"packages/core/devtools",
|
||||||
|
"packages/core/database/src/sql-parser/index.js",
|
||||||
|
"**/.dumi/tmp",
|
||||||
|
"**/.dumi/tmp-test",
|
||||||
|
"**/.dumi/tmp-production",
|
||||||
|
"packages/core/cli/templates/plugin/src/client/*.tpl",
|
||||||
|
"packages/app/client/src/.plugins",
|
||||||
|
"**/docker",
|
||||||
|
"**/storage",
|
||||||
|
"**/benchmark",
|
||||||
|
"packages/core/cli/src",
|
||||||
|
"packages/core/cli/bin",
|
||||||
|
"packages/plugins/@hera/plugin-core/src/client/features/departments/index.tsx",
|
||||||
|
],
|
||||||
|
}, ...fixupConfigRules(compat.extends(
|
||||||
|
"eslint:recommended",
|
||||||
|
"plugin:@typescript-eslint/recommended",
|
||||||
|
"plugin:react/recommended",
|
||||||
|
"plugin:react-hooks/recommended",
|
||||||
|
"plugin:promise/recommended",
|
||||||
|
"plugin:prettier/recommended",
|
||||||
|
)), {
|
||||||
|
plugins: {
|
||||||
|
"@typescript-eslint": fixupPluginRules(typescriptEslint),
|
||||||
|
react: fixupPluginRules(react),
|
||||||
|
"react-hooks": fixupPluginRules(reactHooks),
|
||||||
|
prettier: fixupPluginRules(prettier),
|
||||||
|
promise: fixupPluginRules(promise),
|
||||||
|
"jest-dom": jestDom,
|
||||||
|
"testing-library": testingLibrary,
|
||||||
|
},
|
||||||
|
|
||||||
|
languageOptions: {
|
||||||
|
globals: {
|
||||||
|
...globals.node,
|
||||||
|
...globals.es2020,
|
||||||
|
...globals.browser,
|
||||||
|
sleep: true,
|
||||||
|
prettyFormat: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
parser: tsParser,
|
||||||
|
ecmaVersion: 11,
|
||||||
|
sourceType: "module",
|
||||||
|
|
||||||
|
parserOptions: {
|
||||||
|
ecmaFeatures: {
|
||||||
|
jsx: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
project: "./tsconfig.json",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
settings: {
|
||||||
|
react: {
|
||||||
|
version: "detect",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
rules: {
|
||||||
|
"@typescript-eslint/no-this-alias": "off",
|
||||||
|
"@typescript-eslint/ban-types": "off",
|
||||||
|
"no-unused-vars": "off",
|
||||||
|
"no-useless-catch": "off",
|
||||||
|
"@typescript-eslint/no-unused-vars": "off",
|
||||||
|
"no-empty-function": "off",
|
||||||
|
"@typescript-eslint/no-empty-function": "off",
|
||||||
|
"react/display-name": "off",
|
||||||
|
"react/prop-types": "off",
|
||||||
|
"no-explicit-any": "off",
|
||||||
|
"@typescript-eslint/no-explicit-any": "off",
|
||||||
|
"@typescript-eslint/ban-ts-comment": "off",
|
||||||
|
"@typescript-eslint/no-var-requires": "off",
|
||||||
|
"promise/always-return": "off",
|
||||||
|
},
|
||||||
|
}, {
|
||||||
|
files: ["**/e2e/**/*.{ts,js,tsx,jsx}", "**/__e2e__/**/*.{ts,js,tsx,jsx}"],
|
||||||
|
|
||||||
|
rules: {
|
||||||
|
"@typescript-eslint/no-floating-promises": "error",
|
||||||
|
},
|
||||||
|
}, {
|
||||||
|
files: [
|
||||||
|
"packages/plugins/@hera/**/*.{ts,js,tsx,jsx}",
|
||||||
|
"packages/plugins/@hera/**/*.{ts,js,tsx,jsx}",
|
||||||
|
],
|
||||||
|
|
||||||
|
rules: {
|
||||||
|
eqeqeq: ["error", "smart"],
|
||||||
|
},
|
||||||
|
}];
|
@ -49,6 +49,9 @@
|
|||||||
"@commitlint/cli": "^16.3.0",
|
"@commitlint/cli": "^16.3.0",
|
||||||
"@commitlint/config-conventional": "^16.2.4",
|
"@commitlint/config-conventional": "^16.2.4",
|
||||||
"@commitlint/prompt-cli": "^16.3.0",
|
"@commitlint/prompt-cli": "^16.3.0",
|
||||||
|
"@eslint/compat": "^1.1.1",
|
||||||
|
"@eslint/eslintrc": "^3.1.0",
|
||||||
|
"@eslint/js": "^9.10.0",
|
||||||
"@ianvs/prettier-plugin-sort-imports": "^4.2.1",
|
"@ianvs/prettier-plugin-sort-imports": "^4.2.1",
|
||||||
"@tachybase/build": "workspace:*",
|
"@tachybase/build": "workspace:*",
|
||||||
"@tachybase/cli": "workspace:*",
|
"@tachybase/cli": "workspace:*",
|
||||||
@ -64,6 +67,7 @@
|
|||||||
"commander": "^9.5.0",
|
"commander": "^9.5.0",
|
||||||
"eslint-plugin-jest-dom": "^5.4.0",
|
"eslint-plugin-jest-dom": "^5.4.0",
|
||||||
"eslint-plugin-testing-library": "^5.11.1",
|
"eslint-plugin-testing-library": "^5.11.1",
|
||||||
|
"globals": "^15.9.0",
|
||||||
"husky": "^9.0.11",
|
"husky": "^9.0.11",
|
||||||
"lint-staged": "^13.3.0",
|
"lint-staged": "^13.3.0",
|
||||||
"prettier": "^3.2.5",
|
"prettier": "^3.2.5",
|
||||||
|
556
pnpm-lock.yaml
556
pnpm-lock.yaml
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user