58 lines
1.4 KiB
TypeScript
58 lines
1.4 KiB
TypeScript
import type { Linter } from 'eslint';
|
|
|
|
import { interopDefault } from '../util';
|
|
|
|
export async function node(): Promise<Linter.Config[]> {
|
|
const pluginNode = await interopDefault(import('eslint-plugin-n'));
|
|
|
|
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',
|
|
'@playwright/test',
|
|
],
|
|
},
|
|
],
|
|
'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',
|
|
},
|
|
},
|
|
];
|
|
}
|