const { defineConfig, globalIgnores } = require('eslint/config') const html = require('eslint-plugin-html') const globals = require('globals') const tsParser = require('@typescript-eslint/parser') const js = require('@eslint/js') const { FlatCompat } = require('@eslint/eslintrc') const compat = new FlatCompat({ baseDirectory: __dirname, recommendedConfig: js.configs.recommended, allConfig: js.configs.all, }) module.exports = defineConfig([ { languageOptions: { ecmaVersion: 2018, sourceType: 'module', parserOptions: { parser: 'babel-eslint', }, globals: { ...globals.browser, ...globals.node, }, }, plugins: { html, }, extends: compat.extends('plugin:prettier/recommended'), rules: { 'prettier/prettier': [ 'error', { endOfLine: 'auto', }, ], indent: [ 'error', 2, { SwitchCase: 1, }, ], 'space-infix-ops': [ 'error', { int32Hint: false, }, ], 'key-spacing': [ 2, { beforeColon: false, afterColon: true, }, ], 'no-octal': 2, 'no-redeclare': 2, 'comma-spacing': 2, 'no-new-object': 2, 'arrow-spacing': 2, quotes: [ 2, 'single', { avoidEscape: true, allowTemplateLiterals: true, }, ], }, }, globalIgnores(['**/public/']), { files: ['**/*.ts'], languageOptions: { parser: tsParser, }, extends: compat.extends('plugin:@typescript-eslint/recommended'), }, ])