220 lines
		
	
	
		
			7.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			220 lines
		
	
	
		
			7.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| import jsdoc from 'eslint-plugin-jsdoc';
 | |
| import prettier from 'eslint-plugin-prettier';
 | |
| import configPrettier from 'eslint-config-prettier';
 | |
| 
 | |
| export default [
 | |
|   {
 | |
|     ignores: [
 | |
|       "node_modules/",
 | |
|       "eslint.config.mjs",
 | |
|       "build.mjs",
 | |
|       "gulpfile.js"
 | |
|     ],
 | |
|     languageOptions: {
 | |
|       globals: {
 | |
|         browser: true,
 | |
|         es2022: true,
 | |
|         node: true,
 | |
|         jquery: true,
 | |
|       },
 | |
|       ecmaVersion: 2022,
 | |
|       sourceType: 'module',
 | |
|     },
 | |
|     plugins: {
 | |
|       jsdoc, 
 | |
|       prettier
 | |
|   },
 | |
|     rules: {
 | |
|       'array-bracket-spacing': ['warn', 'never'],
 | |
|       'array-callback-return': 'warn',
 | |
|       'arrow-spacing': 'warn',
 | |
|       'comma-dangle': ['warn', 'never'],
 | |
|       'comma-style': 'warn',
 | |
|       'computed-property-spacing': 'warn',
 | |
|       'constructor-super': 'error',
 | |
|       'default-param-last': 'warn',
 | |
|       'dot-location': ['warn', 'property'],
 | |
|       'eol-last': ['error', 'always'],
 | |
|       'eqeqeq': ['warn', 'smart'],
 | |
|       'func-call-spacing': 'warn',
 | |
|       'func-names': ['warn', 'never'],
 | |
|       'getter-return': 'warn',
 | |
|       'lines-between-class-members': 'warn',
 | |
|       'new-parens': ['warn', 'always'],
 | |
|       'no-alert': 'warn',
 | |
|       'no-array-constructor': 'warn',
 | |
|       'no-class-assign': 'warn',
 | |
|       'no-compare-neg-zero': 'warn',
 | |
|       'no-cond-assign': 'warn',
 | |
|       'no-const-assign': 'error',
 | |
|       'no-constant-condition': 'warn',
 | |
|       'no-constructor-return': 'warn',
 | |
|       'no-delete-var': 'warn',
 | |
|       'no-dupe-args': 'warn',
 | |
|       'no-dupe-class-members': 'warn',
 | |
|       'no-dupe-keys': 'warn',
 | |
|       'no-duplicate-case': 'warn',
 | |
|       'no-duplicate-imports': ['warn', { includeExports: true }],
 | |
|       'no-empty': ['warn', { allowEmptyCatch: true }],
 | |
|       'no-empty-character-class': 'warn',
 | |
|       'no-empty-pattern': 'warn',
 | |
|       'no-func-assign': 'warn',
 | |
|       'no-global-assign': 'warn',
 | |
|       'no-implicit-coercion': ['warn', { allow: ['!!'] }],
 | |
|       'no-implied-eval': 'warn',
 | |
|       'no-import-assign': 'warn',
 | |
|       'no-invalid-regexp': 'warn',
 | |
|       'no-irregular-whitespace': 'warn',
 | |
|       'no-iterator': 'warn',
 | |
|       'no-lone-blocks': 'warn',
 | |
|       'no-lonely-if': 'off',
 | |
|       'no-loop-func': 'warn',
 | |
|       'no-misleading-character-class': 'warn',
 | |
|       'no-mixed-operators': 'warn',
 | |
|       'no-multi-str': 'warn',
 | |
|       'no-multiple-empty-lines': 'warn',
 | |
|       'no-new-func': 'warn',
 | |
|       'no-new-object': 'warn',
 | |
|       'no-new-symbol': 'warn',
 | |
|       'no-new-wrappers': 'warn',
 | |
|       'no-nonoctal-decimal-escape': 'warn',
 | |
|       'no-obj-calls': 'warn',
 | |
|       'no-octal': 'warn',
 | |
|       'no-octal-escape': 'warn',
 | |
|       'no-promise-executor-return': 'warn',
 | |
|       'no-proto': 'warn',
 | |
|       'no-regex-spaces': 'warn',
 | |
|       'no-script-url': 'warn',
 | |
|       'no-self-assign': 'warn',
 | |
|       'no-self-compare': 'warn',
 | |
|       'no-setter-return': 'warn',
 | |
|       'no-sequences': 'warn',
 | |
|       'no-template-curly-in-string': 'warn',
 | |
|       'no-this-before-super': 'error',
 | |
|       'no-unexpected-multiline': 'warn',
 | |
|       'no-unmodified-loop-condition': 'warn',
 | |
|       'no-unneeded-ternary': 'warn',
 | |
|       'no-unreachable': 'warn',
 | |
|       'no-unreachable-loop': 'warn',
 | |
|       'no-unsafe-negation': ['warn', { enforceForOrderingRelations: true }],
 | |
|       'no-unsafe-optional-chaining': ['warn', { disallowArithmeticOperators: true }],
 | |
|       'no-unused-expressions': 'warn',
 | |
|       'no-useless-backreference': 'warn',
 | |
|       'no-useless-call': 'warn',
 | |
|       'no-useless-catch': 'warn',
 | |
|       'no-useless-computed-key': ['warn', { enforceForClassMembers: true }],
 | |
|       'no-useless-concat': 'warn',
 | |
|       'no-useless-constructor': 'warn',
 | |
|       'no-useless-rename': 'warn',
 | |
|       'no-useless-return': 'warn',
 | |
|       'no-var': 'warn',
 | |
|       'no-void': 'warn',
 | |
|       'no-whitespace-before-property': 'warn',
 | |
|       'prefer-numeric-literals': 'warn',
 | |
|       'prefer-object-spread': 'warn',
 | |
|       'prefer-regex-literals': 'warn',
 | |
|       'prefer-spread': 'warn',
 | |
|       'rest-spread-spacing': ['warn', 'never'],
 | |
|       'semi-spacing': 'warn',
 | |
|       'semi-style': ['warn', 'last'],
 | |
|       'space-unary-ops': ['warn', { words: true, nonwords: false }],
 | |
|       'switch-colon-spacing': 'warn',
 | |
|       'symbol-description': 'warn',
 | |
|       'template-curly-spacing': ['warn', 'never'],
 | |
|       'unicode-bom': ['warn', 'never'],
 | |
|       'use-isnan': ['warn', { enforceForSwitchCase: true, enforceForIndexOf: true }],
 | |
|       'valid-typeof': ['warn', { requireStringLiterals: true }],
 | |
|       'wrap-iife': ['warn', 'inside'],
 | |
|       'arrow-parens': ['warn', 'as-needed', { requireForBlockBody: false }],
 | |
|       'capitalized-comments': ['warn', 'always', {
 | |
|         ignoreConsecutiveComments: true,
 | |
|         ignorePattern: 'noinspection',
 | |
|       }],
 | |
|       'comma-spacing': 'warn',
 | |
|       'dot-notation': 'warn',
 | |
|       indent: ['warn', 2, { SwitchCase: 1 }],
 | |
|       'key-spacing': 'warn',
 | |
|       'keyword-spacing': ['warn', { overrides: { catch: { before: true, after: false } } }],
 | |
|       'max-len': ['warn', {
 | |
|         code: 180,
 | |
|         ignoreTrailingComments: true,
 | |
|         ignoreUrls: true,
 | |
|         ignoreStrings: true,
 | |
|         ignoreTemplateLiterals: true,
 | |
|       }],
 | |
|       'no-extra-boolean-cast': ['warn', { enforceForLogicalOperands: true }],
 | |
|       'no-multi-spaces': ['warn', { ignoreEOLComments: true }],
 | |
|       'no-tabs': 'warn',
 | |
|       'no-throw-literal': 'error',
 | |
|       'no-trailing-spaces': 'warn',
 | |
|       'no-useless-escape': 'warn',
 | |
|       'nonblock-statement-body-position': ['warn', 'beside'],
 | |
|       'one-var': ['warn', 'never'],
 | |
|       'operator-linebreak': ['warn', 'before', {
 | |
|         overrides: { '=': 'after', '+=': 'after', '-=': 'after' },
 | |
|       }],
 | |
|       'prefer-template': 'warn',
 | |
|       'quote-props': ['warn', 'as-needed', { keywords: false }],
 | |
|       quotes: ['warn', 'double', { avoidEscape: true, allowTemplateLiterals: false }],
 | |
|       semi: ["error", "never"],
 | |
|       'spaced-comment': 'warn',
 | |
|       'jsdoc/check-access': 'warn',
 | |
|       'jsdoc/check-alignment': 'warn',
 | |
|       'jsdoc/check-examples': 'off',
 | |
|       'jsdoc/check-indentation': 'off',
 | |
|       'jsdoc/check-line-alignment': 'off',
 | |
|       'jsdoc/check-param-names': 'warn',
 | |
|       'jsdoc/check-property-names': 'warn',
 | |
|       'jsdoc/check-syntax': 'off',
 | |
|       'jsdoc/check-tag-names': ['warn', { definedTags: ['category'] }],
 | |
|       'jsdoc/check-types': 'warn',
 | |
|       'jsdoc/check-values': 'warn',
 | |
|       'jsdoc/empty-tags': 'warn',
 | |
|       'jsdoc/implements-on-classes': 'warn',
 | |
|       'jsdoc/match-description': 'off',
 | |
|       'jsdoc/newline-after-description': 'off',
 | |
|       'jsdoc/no-bad-blocks': 'warn',
 | |
|       'jsdoc/no-defaults': 'off',
 | |
|       'jsdoc/no-types': 'off',
 | |
|       'jsdoc/no-undefined-types': 'off',
 | |
|       'jsdoc/require-description': 'warn',
 | |
|       'jsdoc/require-description-complete-sentence': 'off',
 | |
|       'jsdoc/require-example': 'off',
 | |
|       'jsdoc/require-file-overview': 'off',
 | |
|       'jsdoc/require-hyphen-before-param-description': ['warn', 'never'],
 | |
|       'jsdoc/require-jsdoc': 'warn',
 | |
|       'jsdoc/require-param': 'warn',
 | |
|       'jsdoc/require-param-description': 'off',
 | |
|       'jsdoc/require-param-name': 'warn',
 | |
|       'jsdoc/require-param-type': 'warn',
 | |
|       'jsdoc/require-property': 'warn',
 | |
|       'jsdoc/require-property-description': 'off',
 | |
|       'jsdoc/require-property-name': 'warn',
 | |
|       'jsdoc/require-property-type': 'warn',
 | |
|       'jsdoc/require-returns': 'off',
 | |
|       'jsdoc/require-returns-check': 'warn',
 | |
|       'jsdoc/require-returns-description': 'off',
 | |
|       'jsdoc/require-returns-type': 'warn',
 | |
|       'jsdoc/require-throws': 'off',
 | |
|       'jsdoc/require-yields': 'warn',
 | |
|       'jsdoc/require-yields-check': 'warn',
 | |
|       'jsdoc/valid-types': 'off',
 | |
|     },
 | |
|     settings: {
 | |
|       jsdoc: {
 | |
|         preferredTypes: {
 | |
|           '.<>': '<>',
 | |
|           object: 'Object',
 | |
|           Object: 'object',
 | |
|         },
 | |
|         mode: 'typescript',
 | |
|         tagNamePreference: {
 | |
|           augments: 'extends',
 | |
|         },
 | |
|       },
 | |
|     },
 | |
|   },
 | |
|     // Ajout de la configuration Prettier qui désactive les règles ESLint en conflit avec Prettier
 | |
|     configPrettier
 | |
| ];
 |