/* * eslint.config.js * Zyquo Cloud Web * * Author: Simon-Pierre Boucher * Mail: contact@spboucher.ai */ import js from '@eslint/js' import tsParser from '@typescript-eslint/parser' import tsPlugin from '@typescript-eslint/eslint-plugin' import reactHooks from 'eslint-plugin-react-hooks' export default [ js.configs.recommended, { files: ['src/**/*.{ts,tsx}'], languageOptions: { parser: tsParser, parserOptions: { ecmaVersion: 2022, sourceType: 'module', ecmaFeatures: { jsx: true } }, globals: { window: 'readonly', document: 'readonly', navigator: 'readonly', console: 'readonly', fetch: 'readonly', localStorage: 'readonly', indexedDB: 'readonly', crypto: 'readonly', setTimeout: 'readonly', clearTimeout: 'readonly', setInterval: 'readonly', clearInterval: 'readonly', AbortController: 'readonly', TextDecoder: 'readonly', TextEncoder: 'readonly', TextDecoderStream: 'readonly', ReadableStream: 'readonly', Response: 'readonly', Request: 'readonly', Headers: 'readonly', FileReader: 'readonly', Blob: 'readonly', File: 'readonly', URL: 'readonly', URLSearchParams: 'readonly', IDBDatabase: 'readonly', IDBRequest: 'readonly', IDBTransaction: 'readonly', SpeechSynthesisUtterance: 'readonly', speechSynthesis: 'readonly', requestAnimationFrame: 'readonly', cancelAnimationFrame: 'readonly', matchMedia: 'readonly', HTMLElement: 'readonly', HTMLInputElement: 'readonly', HTMLTextAreaElement: 'readonly', HTMLDivElement: 'readonly', HTMLButtonElement: 'readonly', HTMLImageElement: 'readonly', KeyboardEvent: 'readonly', MouseEvent: 'readonly', ClipboardEvent: 'readonly', DragEvent: 'readonly', Event: 'readonly', CustomEvent: 'readonly', AbortSignal: 'readonly', DOMException: 'readonly', performance: 'readonly', atob: 'readonly', btoa: 'readonly', structuredClone: 'readonly', queueMicrotask: 'readonly', }, }, plugins: { '@typescript-eslint': tsPlugin, 'react-hooks': reactHooks }, rules: { ...tsPlugin.configs.recommended.rules, ...reactHooks.configs.recommended.rules, 'no-unused-vars': 'off', '@typescript-eslint/no-unused-vars': [ 'error', { argsIgnorePattern: '^_', varsIgnorePattern: '^_', destructuredArrayIgnorePattern: '^_' }, ], 'no-undef': 'off', }, }, { ignores: ['dist/', 'dev-dist/', 'node_modules/'] }, ]