60 lines
1.9 KiB
JavaScript
60 lines
1.9 KiB
JavaScript
// EN: ESLint v9 Flat Config for Root Monorepo
|
|
// VI: ESLint v9 Flat Config cho Root Monorepo
|
|
import tseslint from '@typescript-eslint/eslint-plugin';
|
|
import tsparser from '@typescript-eslint/parser';
|
|
|
|
export default [
|
|
{
|
|
// EN: Ignore patterns for monorepo root
|
|
// VI: Các pattern bỏ qua cho monorepo root
|
|
ignores: [
|
|
'**/node_modules/**',
|
|
'**/dist/**',
|
|
'**/build/**',
|
|
'**/.next/**',
|
|
'**/coverage/**',
|
|
'**/.turbo/**',
|
|
'**/prisma/migrations/**',
|
|
'**/_prisma_client/**',
|
|
// EN: Ignore workspace packages (they have their own configs)
|
|
// VI: Bỏ qua workspace packages (chúng có config riêng)
|
|
'apps/**',
|
|
'services/**',
|
|
'packages/**',
|
|
],
|
|
},
|
|
{
|
|
// EN: Configuration for root-level config files
|
|
// VI: Cấu hình cho các config files ở root level
|
|
files: ['*.js', '*.ts', '*.json'],
|
|
languageOptions: {
|
|
parser: tsparser,
|
|
parserOptions: {
|
|
ecmaVersion: 2024,
|
|
sourceType: 'module',
|
|
},
|
|
globals: {
|
|
// Node.js globals
|
|
console: 'readonly',
|
|
process: 'readonly',
|
|
Buffer: 'readonly',
|
|
__dirname: 'readonly',
|
|
__filename: 'readonly',
|
|
module: 'readonly',
|
|
require: 'readonly',
|
|
exports: 'readonly',
|
|
globalThis: 'readonly',
|
|
},
|
|
},
|
|
plugins: {
|
|
'@typescript-eslint': tseslint,
|
|
},
|
|
rules: {
|
|
// EN: Minimal rules for root config files
|
|
// VI: Rules tối thiểu cho root config files
|
|
'no-console': 'off',
|
|
'no-debugger': 'error',
|
|
},
|
|
},
|
|
];
|