import globals from 'globals'; import js from '@eslint/js'; import unicorn from 'eslint-plugin-unicorn'; import jsdoc from 'eslint-plugin-jsdoc'; import noUnsanitized from 'eslint-plugin-no-unsanitized'; export default [ { files: ['**/*.js'], languageOptions: { globals: { ...globals.browser, ...globals.commonjs, ...globals.webextensions, }, }, plugins: { unicorn, jsdoc, 'no-unsanitized': noUnsanitized, }, rules: { // ### ESLint (https://eslint.org/docs/latest/rules/) ...js.configs.recommended.rules, // ### Unicorn (https://github.com/sindresorhus/eslint-plugin-unicorn#rules) ...unicorn.configs.recommended.rules, 'unicorn/no-nested-ternary': 'off', 'unicorn/no-null': 'off', 'unicorn/prefer-module': 'off', 'unicorn/prevent-abbreviations': 'off', // ### JSDoc (https://github.com/gajus/eslint-plugin-jsdoc/tree/main#user-content-eslint-plugin-jsdoc-rules) ...jsdoc.configs['flat/recommended-error'].rules, 'jsdoc/check-indentation': 'error', 'jsdoc/require-asterisk-prefix': 'error', 'jsdoc/require-jsdoc': ['error', { exemptEmptyFunctions: true }], 'jsdoc/require-param-description': 'off', 'jsdoc/require-returns-description': 'off', // ### no-unsanitized (https://github.com/mozilla/eslint-plugin-no-unsanitized#rule-details) ...noUnsanitized.configs.DOM.rules, }, }, ];