network/eslint.config.js
2025-04-01 10:44:20 +03:00

83 lines
2.0 KiB
JavaScript

import globals from 'globals';
import js from '@eslint/js';
import tseslint from 'typescript-eslint';
import prettier from 'eslint-plugin-prettier';
export default [
// Base configuration for all files
{
files: ['**/*.{ts}'],
ignores: ['dist/**', 'docs/**', 'src/components/bot/templates/**'],
languageOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
globals: {
...globals.node,
NodeJS: 'readonly', // Add NodeJS as a global
Express: 'readonly', // Add Express as a global
},
},
plugins: {
prettier: prettier,
},
rules: {
...js.configs.recommended.rules,
...prettier.configs.recommended.rules,
camelcase: 'off',
'no-invalid-this': 'off',
'prettier/prettier': 'error',
'require-jsdoc': 'off',
'valid-jsdoc': 'off',
'new-cap': ['error', { capIsNew: false }],
'no-unused-vars': [
'error',
{
argsIgnorePattern: '^_',
varsIgnorePattern: '^_',
caughtErrorsIgnorePattern: '^_',
},
],
},
},
// TypeScript-specific configuration
{
files: ['**/*.ts', '**/*.tsx'],
languageOptions: {
parser: tseslint.parser,
parserOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
project: './tsconfig.json',
},
},
plugins: {
'@typescript-eslint': tseslint.plugin,
},
rules: {
...tseslint.configs.recommended.rules,
'@typescript-eslint/naming-convention': [
'error',
{
selector: 'default',
format: ['camelCase', 'PascalCase', 'snake_case', 'UPPER_CASE'],
leadingUnderscore: 'allow',
trailingUnderscore: 'allow',
},
{
selector: 'property',
format: null,
},
],
'@typescript-eslint/no-unused-vars': [
'error',
{
argsIgnorePattern: '^_',
varsIgnorePattern: '^_',
caughtErrorsIgnorePattern: '^_',
},
],
},
},
];