mirror of
				https://github.com/langgenius/dify.git
				synced 2025-11-03 20:33:00 +00:00 
			
		
		
		
	Signed-off-by: yihong0618 <zouzou0208@gmail.com> Signed-off-by: -LAN- <laipz8200@outlook.com> Signed-off-by: xhe <xw897002528@gmail.com> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: takatost <takatost@gmail.com> Co-authored-by: kurokobo <kuro664@gmail.com> Co-authored-by: Novice Lee <novicelee@NoviPro.local> Co-authored-by: zxhlyh <jasonapring2015@outlook.com> Co-authored-by: AkaraChen <akarachen@outlook.com> Co-authored-by: Yi <yxiaoisme@gmail.com> Co-authored-by: Joel <iamjoel007@gmail.com> Co-authored-by: JzoNg <jzongcode@gmail.com> Co-authored-by: twwu <twwu@dify.ai> Co-authored-by: Hiroshi Fujita <fujita-h@users.noreply.github.com> Co-authored-by: AkaraChen <85140972+AkaraChen@users.noreply.github.com> Co-authored-by: NFish <douxc512@gmail.com> Co-authored-by: Wu Tianwei <30284043+WTW0313@users.noreply.github.com> Co-authored-by: 非法操作 <hjlarry@163.com> Co-authored-by: Novice <857526207@qq.com> Co-authored-by: Hiroki Nagai <82458324+nagaihiroki-git@users.noreply.github.com> Co-authored-by: Gen Sato <52241300+halogen22@users.noreply.github.com> Co-authored-by: eux <euxuuu@gmail.com> Co-authored-by: huangzhuo1949 <167434202+huangzhuo1949@users.noreply.github.com> Co-authored-by: huangzhuo <huangzhuo1@xiaomi.com> Co-authored-by: lotsik <lotsik@mail.ru> Co-authored-by: crazywoola <100913391+crazywoola@users.noreply.github.com> Co-authored-by: nite-knite <nkCoding@gmail.com> Co-authored-by: Jyong <76649700+JohnJyong@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: gakkiyomi <gakkiyomi@aliyun.com> Co-authored-by: CN-P5 <heibai2006@gmail.com> Co-authored-by: CN-P5 <heibai2006@qq.com> Co-authored-by: Chuehnone <1897025+chuehnone@users.noreply.github.com> Co-authored-by: yihong <zouzou0208@gmail.com> Co-authored-by: Kevin9703 <51311316+Kevin9703@users.noreply.github.com> Co-authored-by: -LAN- <laipz8200@outlook.com> Co-authored-by: Boris Feld <lothiraldan@gmail.com> Co-authored-by: mbo <himabo@gmail.com> Co-authored-by: mabo <mabo@aeyes.ai> Co-authored-by: Warren Chen <warren.chen830@gmail.com> Co-authored-by: JzoNgKVO <27049666+JzoNgKVO@users.noreply.github.com> Co-authored-by: jiandanfeng <chenjh3@wangsu.com> Co-authored-by: zhu-an <70234959+xhdd123321@users.noreply.github.com> Co-authored-by: zhaoqingyu.1075 <zhaoqingyu.1075@bytedance.com> Co-authored-by: 海狸大師 <86974027+yenslife@users.noreply.github.com> Co-authored-by: Xu Song <xusong.vip@gmail.com> Co-authored-by: rayshaw001 <396301947@163.com> Co-authored-by: Ding Jiatong <dingjiatong@gmail.com> Co-authored-by: Bowen Liang <liangbowen@gf.com.cn> Co-authored-by: JasonVV <jasonwangiii@outlook.com> Co-authored-by: le0zh <newlight@qq.com> Co-authored-by: zhuxinliang <zhuxinliang@didiglobal.com> Co-authored-by: k-zaku <zaku99@outlook.jp> Co-authored-by: luckylhb90 <luckylhb90@gmail.com> Co-authored-by: hobo.l <hobo.l@binance.com> Co-authored-by: jiangbo721 <365065261@qq.com> Co-authored-by: 刘江波 <jiangbo721@163.com> Co-authored-by: Shun Miyazawa <34241526+miya@users.noreply.github.com> Co-authored-by: EricPan <30651140+Egfly@users.noreply.github.com> Co-authored-by: crazywoola <427733928@qq.com> Co-authored-by: sino <sino2322@gmail.com> Co-authored-by: Jhvcc <37662342+Jhvcc@users.noreply.github.com> Co-authored-by: lowell <lowell.hu@zkteco.in> Co-authored-by: Boris Polonsky <BorisPolonsky@users.noreply.github.com> Co-authored-by: Ademílson Tonato <ademilsonft@outlook.com> Co-authored-by: Ademílson Tonato <ademilson.tonato@refurbed.com> Co-authored-by: IWAI, Masaharu <iwaim.sub@gmail.com> Co-authored-by: Yueh-Po Peng (Yabi) <94939112+y10ab1@users.noreply.github.com> Co-authored-by: Jason <ggbbddjm@gmail.com> Co-authored-by: Xin Zhang <sjhpzx@gmail.com> Co-authored-by: yjc980121 <3898524+yjc980121@users.noreply.github.com> Co-authored-by: heyszt <36215648+hieheihei@users.noreply.github.com> Co-authored-by: Abdullah AlOsaimi <osaimiacc@gmail.com> Co-authored-by: Abdullah AlOsaimi <189027247+osaimi@users.noreply.github.com> Co-authored-by: Yingchun Lai <laiyingchun@apache.org> Co-authored-by: Hash Brown <hi@xzd.me> Co-authored-by: zuodongxu <192560071+zuodongxu@users.noreply.github.com> Co-authored-by: Masashi Tomooka <tmokmss@users.noreply.github.com> Co-authored-by: aplio <ryo.091219@gmail.com> Co-authored-by: Obada Khalili <54270856+obadakhalili@users.noreply.github.com> Co-authored-by: Nam Vu <zuzoovn@gmail.com> Co-authored-by: Kei YAMAZAKI <1715090+kei-yamazaki@users.noreply.github.com> Co-authored-by: TechnoHouse <13776377+deephbz@users.noreply.github.com> Co-authored-by: Riddhimaan-Senapati <114703025+Riddhimaan-Senapati@users.noreply.github.com> Co-authored-by: MaFee921 <31881301+2284730142@users.noreply.github.com> Co-authored-by: te-chan <t-nakanome@sakura-is.co.jp> Co-authored-by: HQidea <HQidea@users.noreply.github.com> Co-authored-by: Joshbly <36315710+Joshbly@users.noreply.github.com> Co-authored-by: xhe <xw897002528@gmail.com> Co-authored-by: weiwenyan-dev <154779315+weiwenyan-dev@users.noreply.github.com> Co-authored-by: ex_wenyan.wei <ex_wenyan.wei@tcl.com> Co-authored-by: engchina <12236799+engchina@users.noreply.github.com> Co-authored-by: engchina <atjapan2015@gmail.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: 呆萌闷油瓶 <253605712@qq.com> Co-authored-by: Kemal <kemalmeler@outlook.com> Co-authored-by: Lazy_Frog <4590648+lazyFrogLOL@users.noreply.github.com> Co-authored-by: Yi Xiao <54782454+YIXIAO0@users.noreply.github.com> Co-authored-by: Steven sun <98230804+Tuyohai@users.noreply.github.com> Co-authored-by: steven <sunzwj@digitalchina.com> Co-authored-by: Kalo Chin <91766386+fdb02983rhy@users.noreply.github.com> Co-authored-by: Katy Tao <34019945+KatyTao@users.noreply.github.com> Co-authored-by: depy <42985524+h4ckdepy@users.noreply.github.com> Co-authored-by: 胡春东 <gycm520@gmail.com> Co-authored-by: Junjie.M <118170653@qq.com> Co-authored-by: MuYu <mr.muzea@gmail.com> Co-authored-by: Naoki Takashima <39912547+takatea@users.noreply.github.com> Co-authored-by: Summer-Gu <37869445+gubinjie@users.noreply.github.com> Co-authored-by: Fei He <droxer.he@gmail.com> Co-authored-by: ybalbert001 <120714773+ybalbert001@users.noreply.github.com> Co-authored-by: Yuanbo Li <ybalbert@amazon.com> Co-authored-by: douxc <7553076+douxc@users.noreply.github.com> Co-authored-by: liuzhenghua <1090179900@qq.com> Co-authored-by: Wu Jiayang <62842862+Wu-Jiayang@users.noreply.github.com> Co-authored-by: Your Name <you@example.com> Co-authored-by: kimjion <45935338+kimjion@users.noreply.github.com> Co-authored-by: AugNSo <song.tiankai@icloud.com> Co-authored-by: llinvokerl <38915183+llinvokerl@users.noreply.github.com> Co-authored-by: liusurong.lsr <liusurong.lsr@alibaba-inc.com> Co-authored-by: Vasu Negi <vasu-negi@users.noreply.github.com> Co-authored-by: Hundredwz <1808096180@qq.com> Co-authored-by: Xiyuan Chen <52963600+GareArc@users.noreply.github.com>
		
			
				
	
	
		
			184 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			184 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import {
 | 
						|
  GLOB_TESTS, 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'
 | 
						|
import storybook from 'eslint-plugin-storybook'
 | 
						|
import { fixupConfigRules } from '@eslint/compat'
 | 
						|
import tailwind from 'eslint-plugin-tailwindcss'
 | 
						|
 | 
						|
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 combine(
 | 
						|
  stylistic({
 | 
						|
    lessOpinionated: true,
 | 
						|
    // original @antfu/eslint-config does not support jsx
 | 
						|
    jsx: false,
 | 
						|
    semi: false,
 | 
						|
    quotes: 'single',
 | 
						|
    overrides: {
 | 
						|
      // original config
 | 
						|
      'style/indent': ['error', 2],
 | 
						|
      'style/quotes': ['error', 'single'],
 | 
						|
      'curly': ['error', 'multi-or-nest', 'consistent'],
 | 
						|
      'style/comma-spacing': ['error', { before: false, after: true }],
 | 
						|
      'style/quote-props': ['warn', 'consistent-as-needed'],
 | 
						|
 | 
						|
      // these options does not exist in old version
 | 
						|
      // maybe useless
 | 
						|
      'style/indent-binary-ops': 'off',
 | 
						|
      'style/multiline-ternary': 'off',
 | 
						|
      'antfu/top-level-function': 'off',
 | 
						|
      'antfu/curly': 'off',
 | 
						|
      'antfu/consistent-chaining': 'off',
 | 
						|
 | 
						|
      // copy from eslint-config-antfu 0.36.0
 | 
						|
      'style/brace-style': ['error', 'stroustrup', { allowSingleLine: true }],
 | 
						|
      'style/dot-location': ['error', 'property'],
 | 
						|
      'style/object-curly-newline': ['error', { consistent: true, multiline: true }],
 | 
						|
      'style/object-property-newline': ['error', { allowMultiplePropertiesPerLine: true }],
 | 
						|
      'style/template-curly-spacing': ['error', 'never'],
 | 
						|
      'style/keyword-spacing': 'off',
 | 
						|
 | 
						|
      // not exist in old version, and big change
 | 
						|
      'style/member-delimiter-style': 'off',
 | 
						|
    },
 | 
						|
  }),
 | 
						|
  javascript({
 | 
						|
    overrides: {
 | 
						|
      // handled by unused-imports/no-unused-vars
 | 
						|
      'no-unused-vars': 'off',
 | 
						|
    },
 | 
						|
  }),
 | 
						|
  typescript({
 | 
						|
    overrides: {
 | 
						|
      // original config
 | 
						|
      'ts/consistent-type-definitions': ['warn', 'type'],
 | 
						|
 | 
						|
      // useful, but big change
 | 
						|
      'ts/no-empty-object-type': 'off',
 | 
						|
    },
 | 
						|
  }),
 | 
						|
  unicorn(),
 | 
						|
  node(),
 | 
						|
  // use nextjs config will break @eslint/config-inspector
 | 
						|
  // use `ESLINT_CONFIG_INSPECTOR=true pnpx @eslint/config-inspector` to check the config
 | 
						|
  ...process.env.ESLINT_CONFIG_INSPECTOR
 | 
						|
    ? []
 | 
						|
    // TODO: remove this when upgrade to nextjs 15
 | 
						|
    : fixupConfigRules(compat.extends('next')),
 | 
						|
  {
 | 
						|
    rules: {
 | 
						|
      // performance issue, and not used.
 | 
						|
      '@next/next/no-html-link-for-pages': 'off',
 | 
						|
    },
 | 
						|
  },
 | 
						|
  {
 | 
						|
    ignores: [
 | 
						|
      '**/node_modules/*',
 | 
						|
      '**/node_modules/',
 | 
						|
      '**/dist/',
 | 
						|
      '**/build/',
 | 
						|
      '**/out/',
 | 
						|
      '**/.next/',
 | 
						|
      '**/public/*',
 | 
						|
      '**/*.json',
 | 
						|
    ],
 | 
						|
  },
 | 
						|
  {
 | 
						|
    // orignal config
 | 
						|
    rules: {
 | 
						|
      // orignal ts/no-var-requires
 | 
						|
      'ts/no-require-imports': 'off',
 | 
						|
      'no-console': 'off',
 | 
						|
      'react-hooks/exhaustive-deps': 'warn',
 | 
						|
      'react/display-name': 'off',
 | 
						|
      'array-callback-return': ['error', {
 | 
						|
        allowImplicit: false,
 | 
						|
        checkForEach: false,
 | 
						|
      }],
 | 
						|
 | 
						|
      // copy from eslint-config-antfu 0.36.0
 | 
						|
      'camelcase': 'off',
 | 
						|
      'default-case-last': 'error',
 | 
						|
 | 
						|
      // 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.configs['flat/recommended'],
 | 
						|
  // 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,
 | 
						|
      },
 | 
						|
    },
 | 
						|
  },
 | 
						|
  tailwind.configs['flat/recommended'],
 | 
						|
  {
 | 
						|
    rules: {
 | 
						|
      // due to 1k lines of tailwind config, these rule have performance issue
 | 
						|
      'tailwindcss/no-contradicting-classname': 'off',
 | 
						|
      'tailwindcss/no-unnecessary-arbitrary-value': 'off',
 | 
						|
      'tailwindcss/enforces-shorthand': 'off',
 | 
						|
      'tailwindcss/no-custom-classname': 'off',
 | 
						|
 | 
						|
      // in the future
 | 
						|
      'tailwindcss/classnames-order': 'off',
 | 
						|
    },
 | 
						|
  },
 | 
						|
)
 |