357da3219b
* Add code formatting conventions as eslint rules * Improve formatting in addQuickReply
130 lines
4.5 KiB
JavaScript
130 lines
4.5 KiB
JavaScript
module.exports = {
|
|
root: true,
|
|
extends: [
|
|
'eslint:recommended',
|
|
],
|
|
plugins: [
|
|
'jsdoc',
|
|
],
|
|
env: {
|
|
es6: true,
|
|
},
|
|
parserOptions: {
|
|
ecmaVersion: 'latest',
|
|
},
|
|
overrides: [
|
|
{
|
|
// Server-side files (plus this configuration file)
|
|
files: ['src/**/*.js', './*.js', 'plugins/**/*.js'],
|
|
env: {
|
|
node: true,
|
|
},
|
|
parserOptions: {
|
|
sourceType: 'module',
|
|
},
|
|
globals: {
|
|
globalThis: 'readonly',
|
|
Deno: 'readonly',
|
|
},
|
|
},
|
|
{
|
|
files: ['*.cjs'],
|
|
parserOptions: {
|
|
sourceType: 'commonjs',
|
|
},
|
|
env: {
|
|
node: true,
|
|
},
|
|
},
|
|
{
|
|
files: ['src/**/*.mjs'],
|
|
parserOptions: {
|
|
sourceType: 'module',
|
|
},
|
|
env: {
|
|
node: true,
|
|
},
|
|
},
|
|
{
|
|
// Browser-side files
|
|
files: ['public/**/*.js'],
|
|
env: {
|
|
browser: true,
|
|
jquery: true,
|
|
},
|
|
parserOptions: {
|
|
sourceType: 'module',
|
|
},
|
|
// These scripts are loaded in HTML; tell ESLint not to complain about them being undefined
|
|
globals: {
|
|
globalThis: 'readonly',
|
|
ePub: 'readonly',
|
|
pdfjsLib: 'readonly',
|
|
toastr: 'readonly',
|
|
SillyTavern: 'readonly',
|
|
},
|
|
},
|
|
],
|
|
ignorePatterns: [
|
|
'**/node_modules/**',
|
|
'**/dist/**',
|
|
'**/.git/**',
|
|
'public/lib/**',
|
|
'backups/**',
|
|
'data/**',
|
|
'cache/**',
|
|
'src/tokenizers/**',
|
|
'docker/**',
|
|
'plugins/**',
|
|
'**/*.min.js',
|
|
'public/scripts/extensions/quick-reply/lib/**',
|
|
'public/scripts/extensions/tts/lib/**',
|
|
],
|
|
rules: {
|
|
'jsdoc/no-undefined-types': ['warn', { disableReporting: true, markVariablesAsUsed: true }],
|
|
'no-unused-vars': ['error', { args: 'none' }],
|
|
'no-control-regex': 'off',
|
|
'no-constant-condition': ['error', { checkLoops: false }],
|
|
'require-yield': 'off',
|
|
'quotes': ['error', 'single'],
|
|
'semi': ['error', 'always'],
|
|
'indent': ['error', 4, { SwitchCase: 1, FunctionDeclaration: { parameters: 'first' } }],
|
|
'comma-dangle': ['error', 'always-multiline'],
|
|
'eol-last': ['error', 'always'],
|
|
'no-trailing-spaces': 'error',
|
|
'object-curly-spacing': ['error', 'always'],
|
|
'space-infix-ops': 'error',
|
|
'no-unused-expressions': ['error', { allowShortCircuit: true, allowTernary: true }],
|
|
'no-cond-assign': 'error',
|
|
'no-unneeded-ternary': 'error',
|
|
'no-irregular-whitespace': ['error', { skipStrings: true, skipTemplates: true }],
|
|
'dot-notation': ['error', { 'allowPattern': '[A-Z]\\w*$' }],
|
|
// These rules should eventually be enabled.
|
|
'no-async-promise-executor': 'off',
|
|
'no-inner-declarations': 'off',
|
|
'brace-style': 'off',
|
|
// Additional formatting rules based on codebase conventions
|
|
'array-bracket-spacing': ['error', 'never'],
|
|
'computed-property-spacing': ['error', 'never'],
|
|
'block-spacing': ['error', 'always'],
|
|
'keyword-spacing': ['error', { before: true, after: true }],
|
|
'space-before-blocks': ['error', 'always'],
|
|
'space-before-function-paren': ['error', { anonymous: 'always', named: 'never', asyncArrow: 'always' }],
|
|
'space-in-parens': ['error', 'never'],
|
|
'comma-spacing': ['error', { before: false, after: true }],
|
|
'key-spacing': ['error', { beforeColon: false, afterColon: true }],
|
|
'func-call-spacing': ['error', 'never'],
|
|
'no-multiple-empty-lines': ['error', { max: 2, maxEOF: 1, maxBOF: 0 }],
|
|
'padded-blocks': ['error', 'never'],
|
|
'no-whitespace-before-property': 'error',
|
|
'space-unary-ops': ['error', { words: true, nonwords: false }],
|
|
'arrow-spacing': ['error', { before: true, after: true }],
|
|
'template-curly-spacing': ['error', 'never'],
|
|
'rest-spread-spacing': ['error', 'never'],
|
|
'generator-star-spacing': ['error', { before: false, after: true }],
|
|
'yield-star-spacing': ['error', { before: false, after: true }],
|
|
'template-tag-spacing': ['error', 'never'],
|
|
'switch-colon-spacing': ['error', { after: true, before: false }],
|
|
},
|
|
};
|