import globals from 'globals'; import jsdoc from 'eslint-plugin-jsdoc'; export default [ jsdoc.configs['flat/recommended'], { languageOptions: { ecmaVersion: 'latest', sourceType: 'module', globals: { ...globals.commonjs, ...globals.es2021, }, }, plugins: { jsdoc, }, rules: { 'no-cond-assign': 'off', 'no-irregular-whitespace': 'error', 'no-unexpected-multiline': 'error', 'curly': ['error', 'multi-line'], 'guard-for-in': 'error', 'no-caller': 'error', 'no-extend-native': 'error', 'no-extra-bind': 'error', 'no-invalid-this': 'error', 'no-multi-spaces': 'error', 'no-multi-str': 'error', 'no-new-wrappers': 'error', 'no-throw-literal': 'error', 'no-with': 'error', 'prefer-promise-reject-errors': 'error', 'no-unused-vars': ['error', { args: 'none' }], 'array-bracket-newline': 'off', 'array-bracket-spacing': ['error', 'never'], 'array-element-newline': 'off', 'block-spacing': ['error', 'never'], 'brace-style': 'error', 'camelcase': ['error', { properties: 'never' }], 'comma-dangle': ['error', 'always-multiline'], 'comma-spacing': 'error', 'comma-style': 'error', 'computed-property-spacing': 'error', 'eol-last': 'error', 'func-call-spacing': 'error', 'camelcase': 'off', 'indent': [ 'error', 2, { 'SwitchCase': 1, }, ], 'key-spacing': 'error', 'keyword-spacing': 'error', 'linebreak-style': 'error', 'max-len': [ 'error', { code: 160, ignoreComments: true, ignoreUrls: true, ignoreStrings: true, }, ], 'new-cap': 'error', 'no-array-constructor': 'error', 'no-mixed-spaces-and-tabs': 'error', 'no-multiple-empty-lines': ['error', { max: 2 }], 'no-new-object': 'error', 'no-tabs': 'error', 'no-trailing-spaces': 'error', 'object-curly-spacing': 'error', 'one-var': ['error', { var: 'never', let: 'never', const: 'never', }], 'operator-linebreak': ['error', 'after'], 'padded-blocks': ['error', 'never'], 'quote-props': ['error', 'consistent'], 'quotes': ['error', 'single', { allowTemplateLiterals: true }], 'semi': 'error', 'semi-spacing': 'error', 'space-before-blocks': 'error', 'space-before-function-paren': ['error', { asyncArrow: 'always', anonymous: 'never', named: 'never', }], 'spaced-comment': [ 'error', 'always', { line: { markers: ['/'], }, }, ], 'switch-colon-spacing': 'error', 'arrow-parens': 'off', 'constructor-super': 'error', 'generator-star-spacing': ['error', 'after'], 'no-new-symbol': 'error', 'no-this-before-super': 'error', 'no-var': 'error', 'prefer-const': ['error', { destructuring: 'all' }], 'prefer-rest-params': 'error', 'prefer-spread': 'error', 'rest-spread-spacing': 'error', 'yield-star-spacing': ['error', 'after'], 'jsdoc/no-undefined-types': 'off', 'jsdoc/require-param-description': 'off', 'jsdoc/require-returns-description': 'off', 'jsdoc/require-returns': 'off', 'jsdoc/tag-lines': ['error', 'any', { startLines: 1 }], }, }, ];