157 lines
3.8 KiB
TypeScript
157 lines
3.8 KiB
TypeScript
import type { Linter } from 'eslint';
|
||
|
||
const restrictedImportIgnores = [
|
||
'**/vite.config.mts',
|
||
'**/tailwind.config.mjs',
|
||
'**/postcss.config.mjs',
|
||
];
|
||
|
||
const customConfig: Linter.Config[] = [
|
||
// shadcn-ui 内部组件是自动生成的,不做太多限制
|
||
{
|
||
files: ['packages/@core/ui-kit/shadcn-ui/**/**'],
|
||
rules: {
|
||
'vue/require-default-prop': 'off',
|
||
},
|
||
},
|
||
{
|
||
files: [
|
||
'app/**',
|
||
'packages/effects/**/**',
|
||
'packages/utils/**/**',
|
||
'packages/types/**/**',
|
||
'packages/locales/**/**',
|
||
],
|
||
ignores: restrictedImportIgnores,
|
||
rules: {
|
||
'perfectionist/sort-interfaces': 'off',
|
||
'perfectionist/sort-objects': 'off',
|
||
},
|
||
},
|
||
{
|
||
files: ['**/**.vue'],
|
||
ignores: restrictedImportIgnores,
|
||
rules: {
|
||
'perfectionist/sort-objects': 'off',
|
||
},
|
||
},
|
||
{
|
||
// apps内部的一些基础规则
|
||
files: ['app/**'],
|
||
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',
|
||
},
|
||
],
|
||
},
|
||
],
|
||
'perfectionist/sort-interfaces': 'off',
|
||
},
|
||
},
|
||
{
|
||
// @core内部组件,不能引入@aiflowy/* 里面的包
|
||
files: ['packages/@core/**/**'],
|
||
ignores: restrictedImportIgnores,
|
||
rules: {
|
||
'no-restricted-imports': [
|
||
'error',
|
||
{
|
||
patterns: [
|
||
{
|
||
group: ['@aiflowy/*'],
|
||
message:
|
||
'The @core package cannot import the @aiflowy package, please use the @core package itself',
|
||
},
|
||
],
|
||
},
|
||
],
|
||
},
|
||
},
|
||
{
|
||
// @core/shared内部组件,不能引入@aiflowy/* 或者 @aiflowy-core/* 里面的包
|
||
files: ['packages/@core/base/**/**'],
|
||
ignores: restrictedImportIgnores,
|
||
rules: {
|
||
'no-restricted-imports': [
|
||
'error',
|
||
{
|
||
patterns: [
|
||
{
|
||
group: ['@aiflowy/*', '@aiflowy-core/*'],
|
||
message:
|
||
'The @aiflowy-core/shared package cannot import the @aiflowy package, please use the @core/shared package itself',
|
||
},
|
||
],
|
||
},
|
||
],
|
||
},
|
||
},
|
||
|
||
{
|
||
// 不能引入@aiflowy/*里面的包
|
||
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: ['@aiflowy/*'],
|
||
message:
|
||
'The @aiflowy package cannot be imported, please use the @core package itself',
|
||
},
|
||
],
|
||
},
|
||
],
|
||
},
|
||
},
|
||
{
|
||
files: ['**/**/playwright.config.ts'],
|
||
rules: {
|
||
'n/prefer-global/buffer': 'off',
|
||
'n/prefer-global/process': 'off',
|
||
'no-console': 'off',
|
||
},
|
||
},
|
||
{
|
||
files: ['internal/**/**', 'scripts/**/**'],
|
||
rules: {
|
||
'no-console': 'off',
|
||
},
|
||
},
|
||
];
|
||
|
||
export { customConfig };
|