mirror of
https://github.com/ONLYOFFICE/server.git
synced 2026-02-10 18:05:07 +08:00
[feature] Add code formatting and linting configurations
This commit is contained in:
67
eslint.config.js
Normal file
67
eslint.config.js
Normal file
@ -0,0 +1,67 @@
|
||||
const js = require('@eslint/js');
|
||||
const globals = require('globals');
|
||||
const prettier = require('eslint-config-prettier');
|
||||
const { includeIgnoreFile } = require('@eslint/compat');
|
||||
const path = require('node:path');
|
||||
|
||||
const gitignorePath = path.resolve(__dirname, '.gitignore');
|
||||
|
||||
module.exports = [
|
||||
includeIgnoreFile(gitignorePath),
|
||||
js.configs.recommended,
|
||||
prettier,
|
||||
{
|
||||
languageOptions: {
|
||||
ecmaVersion: 2022,
|
||||
sourceType: 'module',
|
||||
globals: {
|
||||
...globals.node, // All Node.js globals automatically
|
||||
...globals.es2022 // Modern JavaScript globals
|
||||
}
|
||||
},
|
||||
rules: {
|
||||
// Code quality rules (compatible with Prettier)
|
||||
'no-unused-vars': [
|
||||
'error',
|
||||
{
|
||||
argsIgnorePattern: '^_',
|
||||
varsIgnorePattern: '^_',
|
||||
caughtErrorsIgnorePattern: '^_'
|
||||
}
|
||||
],
|
||||
'no-undef': 'error',
|
||||
'eqeqeq': ['error', 'smart'],
|
||||
'curly': ['error', 'all'],
|
||||
|
||||
// Server-friendly settings
|
||||
'no-console': 'off', // Allow console in server code
|
||||
'no-continue': 'off', // Allow continue statements
|
||||
'no-plusplus': ['error', { allowForLoopAfterthoughts: true }],
|
||||
|
||||
// Modern JavaScript practices
|
||||
'prefer-const': 'error', // Enforce const for immutable bindings
|
||||
'no-var': 'error', // Enforce let/const over var
|
||||
'object-shorthand': 'error', // Modern object property syntax
|
||||
'prefer-arrow-callback': 'error', // Modern callback style
|
||||
'no-duplicate-imports': 'error', // Avoid duplicate imports
|
||||
'no-useless-constructor': 'error', // Remove unnecessary constructors
|
||||
'no-useless-return': 'error', // Remove unnecessary return statements
|
||||
'max-lines': ['warn', 300]
|
||||
},
|
||||
ignores: [
|
||||
'node_modules/',
|
||||
'dist/',
|
||||
'build/',
|
||||
'coverage/',
|
||||
'.next/',
|
||||
'out/',
|
||||
'branding/info/ai/**',
|
||||
'branding/info/js/plugin-stub.js',
|
||||
'branding/info/js/plugins.js',
|
||||
'branding/info/js/plugins-ui.js',
|
||||
'*.min.js',
|
||||
'package-lock.json',
|
||||
'npm-shrinkwrap.json'
|
||||
]
|
||||
}
|
||||
];
|
||||
Reference in New Issue
Block a user