55 lines
1.4 KiB
TypeScript
55 lines
1.4 KiB
TypeScript
![]() |
import type { Linter } from 'eslint';
|
||
|
|
||
|
export async function node(): Promise<Linter.FlatConfig[]> {
|
||
|
const [pluginNode] = await Promise.all([import('eslint-plugin-n')] as const);
|
||
|
|
||
|
return [
|
||
|
{
|
||
|
plugins: {
|
||
|
n: pluginNode,
|
||
|
},
|
||
|
rules: {
|
||
|
'n/handle-callback-err': ['error', '^(err|error)$'],
|
||
|
'n/no-deprecated-api': 'error',
|
||
|
'n/no-exports-assign': 'error',
|
||
|
'n/no-extraneous-import': [
|
||
|
'error',
|
||
|
{
|
||
|
allowModules: [
|
||
|
'unbuild',
|
||
|
'@vben/vite-config',
|
||
|
'vitest',
|
||
|
'vite',
|
||
|
'@vue/test-utils',
|
||
|
'@vben/tailwind-config',
|
||
|
],
|
||
|
},
|
||
|
],
|
||
|
'n/no-new-require': 'error',
|
||
|
'n/no-path-concat': 'error',
|
||
|
// 'n/no-unpublished-import': 'off',
|
||
|
'n/no-unsupported-features/es-syntax': [
|
||
|
'error',
|
||
|
{
|
||
|
ignores: [],
|
||
|
version: '>=18.0.0',
|
||
|
},
|
||
|
],
|
||
|
'n/prefer-global/buffer': ['error', 'never'],
|
||
|
// 'n/no-missing-import': 'off',
|
||
|
'n/prefer-global/process': ['error', 'never'],
|
||
|
'n/process-exit-as-throw': 'error',
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
files: [
|
||
|
'scripts/**/*.?([cm])[jt]s?(x)',
|
||
|
'internal/**/*.?([cm])[jt]s?(x)',
|
||
|
],
|
||
|
rules: {
|
||
|
'n/prefer-global/process': 'off',
|
||
|
},
|
||
|
},
|
||
|
];
|
||
|
}
|