1+ import js from '@eslint/js' ;
2+ import tsParser from '@typescript-eslint/parser' ;
3+ import tsPlugin from '@typescript-eslint/eslint-plugin' ;
4+ import globals from 'globals' ;
5+
6+ export default [
7+ // Global ignores (replaces .eslintignore)
8+ {
9+ ignores : [
10+ 'node_modules/**' ,
11+ 'dist/**' ,
12+ 'build/**' ,
13+ 'demo/**'
14+ ]
15+ } ,
16+
17+ // Base configuration for TypeScript files
18+ {
19+ files : [ '**/*.ts' ] ,
20+ languageOptions : {
21+ parser : tsParser ,
22+ parserOptions : {
23+ ecmaVersion : 'latest' ,
24+ sourceType : 'module'
25+ } ,
26+ globals : {
27+ ...globals . browser ,
28+ ...globals . node
29+ }
30+ } ,
31+ plugins : {
32+ '@typescript-eslint' : tsPlugin
33+ } ,
34+ rules : {
35+ ...js . configs . recommended . rules ,
36+ ...tsPlugin . configs . recommended . rules ,
37+
38+ // Custom rules from original config
39+ 'max-len' : [ 'error' , { code : 120 } ] ,
40+ 'quotes' : [ 'error' , 'single' ] ,
41+ 'semi' : [ 'error' , 'always' ] ,
42+ '@typescript-eslint/no-empty-function' : 'off' ,
43+ '@typescript-eslint/no-explicit-any' : [ 'error' , { ignoreRestArgs : true } ] ,
44+
45+ // Disable no-undef for TypeScript as TypeScript compiler handles this
46+ 'no-undef' : 'off'
47+ }
48+ } ,
49+
50+ // Configuration for test files
51+ {
52+ files : [ '**/*.spec.ts' ] ,
53+ languageOptions : {
54+ parser : tsParser ,
55+ globals : {
56+ ...globals . browser ,
57+ ...globals . node ,
58+ ...globals . jest
59+ }
60+ } ,
61+ rules : {
62+ '@typescript-eslint/no-unused-vars' : [ 'error' , { args : 'none' } ] ,
63+ '@typescript-eslint/no-unused-expressions' : 'off'
64+ }
65+ } ,
66+
67+ // Configuration for JavaScript files
68+ {
69+ files : [ '**/*.js' ] ,
70+ languageOptions : {
71+ globals : {
72+ ...globals . node
73+ }
74+ } ,
75+ rules : {
76+ '@typescript-eslint/no-var-requires' : 'off'
77+ }
78+ }
79+ ] ;
0 commit comments