This repository has no description
3.6 kB
140 lines
1import js from '@eslint/js';
2import prettierPlugin from 'eslint-plugin-prettier';
3import tseslint from '@typescript-eslint/eslint-plugin';
4import tsparser from '@typescript-eslint/parser';
5
6export default [
7 js.configs.recommended,
8 {
9 ignores: [
10 'src/webapp/**',
11 'dist/**',
12 'node_modules/**',
13 'src/modules/atproto/infrastructure/lexicon/**',
14 'src/webapp/next-env.d.ts',
15 ],
16 },
17 {
18 files: ['**/*.js'],
19 languageOptions: {
20 ecmaVersion: 2022,
21 sourceType: 'script',
22 globals: {
23 console: 'readonly',
24 process: 'readonly',
25 Buffer: 'readonly',
26 __dirname: 'readonly',
27 __filename: 'readonly',
28 module: 'readonly',
29 require: 'readonly',
30 exports: 'readonly',
31 global: 'readonly',
32 setTimeout: 'readonly',
33 },
34 },
35 plugins: {
36 prettier: prettierPlugin,
37 },
38 rules: {
39 'prettier/prettier': 'error',
40 'no-unused-vars': 'warn',
41 'no-console': 'warn',
42 },
43 },
44 {
45 files: ['**/*.ts'],
46 plugins: {
47 '@typescript-eslint': tseslint,
48 prettier: prettierPlugin,
49 },
50 languageOptions: {
51 parser: tsparser,
52 ecmaVersion: 2022,
53 sourceType: 'module',
54 globals: {
55 console: 'readonly',
56 process: 'readonly',
57 Buffer: 'readonly',
58 __dirname: 'readonly',
59 __filename: 'readonly',
60 module: 'readonly',
61 require: 'readonly',
62 exports: 'readonly',
63 global: 'readonly',
64 fetch: 'readonly',
65 // Jest globals
66 describe: 'readonly',
67 test: 'readonly',
68 it: 'readonly',
69 expect: 'readonly',
70 beforeAll: 'readonly',
71 beforeEach: 'readonly',
72 afterAll: 'readonly',
73 afterEach: 'readonly',
74 jest: 'readonly',
75 URLSearchParams: 'readonly',
76 setTimeout: 'readonly',
77 NodeJS: 'readonly',
78 clearTimeout: 'readonly',
79 setImmediate: 'readonly',
80 setInterval: 'readonly',
81 clearInterval: 'readonly',
82 URL: 'readonly',
83 },
84 },
85 rules: {
86 'prettier/prettier': 'error',
87 'no-unused-vars': 'off', // Turn off base rule
88 '@typescript-eslint/no-unused-vars': 'warn',
89 'no-console': 'warn',
90 },
91 },
92 {
93 files: ['**/*.test.ts', '**/*.spec.ts'],
94 languageOptions: {
95 parser: tsparser,
96 ecmaVersion: 2022,
97 sourceType: 'module',
98 globals: {
99 console: 'readonly',
100 process: 'readonly',
101 Buffer: 'readonly',
102 __dirname: 'readonly',
103 __filename: 'readonly',
104 module: 'readonly',
105 require: 'readonly',
106 exports: 'readonly',
107 global: 'readonly',
108 fetch: 'readonly',
109 // Jest globals
110 describe: 'readonly',
111 test: 'readonly',
112 it: 'readonly',
113 expect: 'readonly',
114 beforeAll: 'readonly',
115 beforeEach: 'readonly',
116 afterAll: 'readonly',
117 afterEach: 'readonly',
118 jest: 'readonly',
119 // Browser globals for e2e tests using Playwright
120 document: 'readonly',
121 window: 'readonly',
122 navigator: 'readonly',
123 location: 'readonly',
124 setTimeout: 'readonly',
125 NodeJS: 'readonly',
126 clearTimeout: 'readonly',
127 },
128 },
129 plugins: {
130 '@typescript-eslint': tseslint,
131 prettier: prettierPlugin,
132 },
133 rules: {
134 'prettier/prettier': 'error',
135 'no-unused-vars': 'off',
136 '@typescript-eslint/no-unused-vars': 'warn',
137 'no-console': 'warn',
138 },
139 },
140];