import js from '@eslint/js'; import tseslint from 'typescript-eslint'; import astro from 'eslint-plugin-astro'; export default [ { ignores: ['dist/', '.astro/', 'node_modules/', '**/*.d.ts'] }, js.configs.recommended, ...tseslint.configs.recommended, ...astro.configs.recommended, { rules: { '@typescript-eslint/no-unused-vars': [ 'error', { argsIgnorePattern: '^_', varsIgnorePattern: '^_' }, ], '@typescript-eslint/consistent-type-imports': 'error', }, }, { // Behaviour modules run in the browser. files: ['src/scripts/**/*.ts'], languageOptions: { globals: { window: 'readonly', document: 'readonly', localStorage: 'readonly', navigator: 'readonly', }, }, }, { // Node config files. files: ['*.config.{js,mjs,ts}'], languageOptions: { globals: { process: 'readonly', URL: 'readonly' } }, }, { // Static browser scripts served as-is from public/. files: ['public/**/*.js'], languageOptions: { globals: { window: 'readonly', document: 'readonly', localStorage: 'readonly' }, }, }, ];