import type { Linter } from 'eslint'; const restrictedImportIgnores = [ '**/vite.config.mts', '**/tailwind.config.mjs', '**/postcss.config.mjs', ]; const customConfig: Linter.FlatConfig[] = [ // shadcn-ui 内部组件是自动生成的,不做太多限制 { files: ['packages/@core/ui-kit/shadcn-ui/**/**'], rules: { 'vue/require-default-prop': 'off', }, }, { // apps内部的一些基础规则 files: ['apps/**/**'], ignores: restrictedImportIgnores, rules: { 'no-restricted-imports': [ 'error', { patterns: [ { group: ['#/api/*'], message: 'The #/api package cannot be imported, please use the @core package itself', }, { group: ['#/layouts/*'], message: 'The #/layouts package cannot be imported, please use the @core package itself', }, { group: ['#/locales/*'], message: 'The #/locales package cannot be imported, please use the @core package itself', }, { group: ['#/stores/*'], message: 'The #/stores package cannot be imported, please use the @core package itself', }, ], }, ], }, }, { // @core内部组件,不能引入@vben/* 里面的包 files: ['packages/@core/**/**'], ignores: restrictedImportIgnores, rules: { 'no-restricted-imports': [ 'error', { patterns: [ { group: ['@vben/*'], message: 'The @core package cannot import the @vben package, please use the @core package itself', }, ], }, ], }, }, { // @core/shared内部组件,不能引入@vben/* 或者 @vben-core/* 里面的包 files: ['packages/@core/base/**/**'], ignores: restrictedImportIgnores, rules: { 'no-restricted-imports': [ 'error', { patterns: [ { group: ['@vben/*', '@vben-core/*'], message: 'The @vben-core/shared package cannot import the @vben package, please use the @core/shared package itself', }, ], }, ], }, }, { // 不能引入@vben/*里面的包 files: [ 'packages/types/**/**', 'packages/utils/**/**', 'packages/icons/**/**', 'packages/constants/**/**', 'packages/styles/**/**', 'packages/stores/**/**', 'packages/preferences/**/**', 'packages/locales/**/**', ], ignores: restrictedImportIgnores, rules: { 'no-restricted-imports': [ 'error', { patterns: [ { group: ['@vben/*'], message: 'The @vben package cannot be imported, please use the @core package itself', }, ], }, ], }, }, // 后端模拟代码,不需要太多规则 { files: ['apps/backend-mock/**/**', 'docs/**/**'], rules: { '@typescript-eslint/no-extraneous-class': 'off', 'n/no-extraneous-import': 'off', 'n/prefer-global/buffer': 'off', 'n/prefer-global/process': 'off', 'no-console': 'off', 'unicorn/prefer-module': 'off', }, }, { files: ['internal/**/**'], rules: { 'no-console': 'off', }, }, ]; export { customConfig };