Merge branch 'feat/plugins' of github.com:langgenius/dify into feat/plugins
commit
0b8c896481
@ -1,7 +0,0 @@
|
||||
/**/node_modules/*
|
||||
node_modules/
|
||||
|
||||
dist/
|
||||
build/
|
||||
out/
|
||||
.next/
|
||||
@ -1,32 +0,0 @@
|
||||
{
|
||||
"root": true,
|
||||
"extends": [
|
||||
"next",
|
||||
"@antfu",
|
||||
"plugin:storybook/recommended"
|
||||
],
|
||||
"rules": {
|
||||
"@typescript-eslint/consistent-type-definitions": [
|
||||
"error",
|
||||
"type"
|
||||
],
|
||||
"@typescript-eslint/no-var-requires": "off",
|
||||
"no-console": "off",
|
||||
"indent": "off",
|
||||
"@typescript-eslint/indent": [
|
||||
"error",
|
||||
2,
|
||||
{
|
||||
"SwitchCase": 1,
|
||||
"flatTernaryExpressions": false,
|
||||
"ignoredNodes": [
|
||||
"PropertyDefinition[decorators]",
|
||||
"TSUnionType",
|
||||
"FunctionExpression[params]:has(Identifier[decorators])"
|
||||
]
|
||||
}
|
||||
],
|
||||
"react-hooks/exhaustive-deps": "warn",
|
||||
"react/display-name": "warn"
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,175 @@
|
||||
import {
|
||||
GLOB_JSX, GLOB_TESTS, GLOB_TSX, combine, javascript, node,
|
||||
stylistic, typescript, unicorn
|
||||
} from '@antfu/eslint-config'
|
||||
import path from 'node:path'
|
||||
import { fileURLToPath } from 'node:url'
|
||||
import js from '@eslint/js'
|
||||
import { FlatCompat } from '@eslint/eslintrc'
|
||||
import globals from 'globals'
|
||||
|
||||
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,
|
||||
})
|
||||
|
||||
// storybook plugin not support v9, so add its recommended rules here
|
||||
const storybook = [
|
||||
{
|
||||
plugins: ['storybook'],
|
||||
files: ['*.stories.@(ts|tsx|js|jsx|mjs|cjs)', '*.story.@(ts|tsx|js|jsx|mjs|cjs)'],
|
||||
rules: {
|
||||
'react-hooks/rules-of-hooks': 'off',
|
||||
'import/no-anonymous-default-export': 'off',
|
||||
'storybook/await-interactions': 'error',
|
||||
'storybook/context-in-play-function': 'error',
|
||||
'storybook/default-exports': 'error',
|
||||
'storybook/hierarchy-separator': 'warn',
|
||||
'storybook/no-redundant-story-name': 'warn',
|
||||
'storybook/prefer-pascal-case': 'warn',
|
||||
'storybook/story-exports': 'error',
|
||||
'storybook/use-storybook-expect': 'error',
|
||||
'storybook/use-storybook-testing-library': 'error',
|
||||
}
|
||||
},
|
||||
{
|
||||
plugins: ['storybook'],
|
||||
files: ['*.stories.@(ts|tsx|js|jsx|mjs|cjs)', '*.story.@(ts|tsx|js|jsx|mjs|cjs)'],
|
||||
rules: {
|
||||
'storybook/no-uninstalled-addons': 'error',
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
export default combine(
|
||||
stylistic({
|
||||
lessOpinionated: true,
|
||||
// original @antfu/eslint-config does not support jsx
|
||||
jsx: false,
|
||||
overrides: {
|
||||
// original config
|
||||
"style/indent": "off",
|
||||
|
||||
// these options does not exist in old version
|
||||
// maybe useless
|
||||
"style/indent-binary-ops": "off",
|
||||
"style/multiline-ternary": "off",
|
||||
|
||||
// not exist in old version, and big change
|
||||
"style/quote-props": "off",
|
||||
"style/member-delimiter-style": "off",
|
||||
"style/quotes": "off",
|
||||
"style/comma-dangle": "off",
|
||||
}
|
||||
}),
|
||||
typescript({
|
||||
overrides: {
|
||||
// useful, but big change
|
||||
"ts/no-empty-object-type": "off",
|
||||
}
|
||||
}),
|
||||
javascript({
|
||||
overrides: {
|
||||
// handled by unused-imports/no-unused-vars
|
||||
'no-unused-vars': 'off',
|
||||
|
||||
// useless
|
||||
'no-use-before-define': 'warn'
|
||||
}
|
||||
}),
|
||||
unicorn(),
|
||||
node(),
|
||||
...process.env.ESLINT_CONFIG_INSPECTOR
|
||||
? []
|
||||
// TODO: remove this when upgrade to nextjs 15
|
||||
: [compat.extends('next')],
|
||||
{
|
||||
ignores: [
|
||||
'**/node_modules/*',
|
||||
'**/node_modules/',
|
||||
'**/dist/',
|
||||
'**/build/',
|
||||
'**/out/',
|
||||
'**/.next/',
|
||||
'**/public/*',
|
||||
'**/*.json',
|
||||
]
|
||||
},
|
||||
{
|
||||
// orignal config
|
||||
rules: {
|
||||
// from old version of antfu/eslint-config
|
||||
// typescript will handle this, see https://typescript-eslint.io/troubleshooting/faqs/eslint/#i-get-errors-from-the-no-undef-rule-about-global-variables-not-being-defined-even-though-there-are-no-typescript-errors
|
||||
"no-undef": "off",
|
||||
|
||||
'ts/consistent-type-definitions': ['error', 'type'],
|
||||
// orignal ts/no-var-requires
|
||||
'ts/no-require-imports': 'off',
|
||||
"no-console": 'off',
|
||||
"react-hooks/exhaustive-deps": "warn",
|
||||
"react/display-name": "off",
|
||||
|
||||
// orignal config, but removed in new version antfu/eslint-config
|
||||
// big change
|
||||
"curly": "off",
|
||||
|
||||
// antfu use eslint-plugin-perfectionist to replace this
|
||||
// will cause big change, so keep the original
|
||||
// sort-imports
|
||||
"sort-imports": [
|
||||
'error',
|
||||
{
|
||||
ignoreCase: false,
|
||||
ignoreDeclarationSort: true,
|
||||
ignoreMemberSort: false,
|
||||
memberSyntaxSortOrder: ['none', 'all', 'multiple', 'single'],
|
||||
allowSeparatedGroups: false,
|
||||
},
|
||||
],
|
||||
|
||||
// antfu migrate to eslint-plugin-unused-imports
|
||||
"unused-imports/no-unused-vars": "warn",
|
||||
"unused-imports/no-unused-imports": "warn",
|
||||
},
|
||||
|
||||
languageOptions: {
|
||||
globals: {
|
||||
...globals.browser,
|
||||
...globals.es2025,
|
||||
...globals.node,
|
||||
'React': 'readable',
|
||||
'JSX': 'readable',
|
||||
}
|
||||
}
|
||||
},
|
||||
storybook,
|
||||
// need futher research
|
||||
{
|
||||
rules: {
|
||||
// not exist in old version
|
||||
"antfu/consistent-list-newline": "off",
|
||||
'node/prefer-global/process': 'off',
|
||||
'node/prefer-global/buffer': 'off',
|
||||
'node/no-callback-literal': 'off',
|
||||
|
||||
// useful, but big change
|
||||
"unicorn/prefer-number-properties": "warn",
|
||||
"unicorn/no-new-array": "warn"
|
||||
}
|
||||
},
|
||||
// suppress error for `no-undef` rule
|
||||
{
|
||||
files: GLOB_TESTS,
|
||||
languageOptions: {
|
||||
globals: {
|
||||
...globals.browser,
|
||||
...globals.es2021,
|
||||
...globals.node,
|
||||
...globals.jest,
|
||||
},
|
||||
},
|
||||
},
|
||||
)
|
||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue