A social knowledge tool for researchers built on ATProto
at main 3.5 kB view raw
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 ], 15 }, 16 { 17 files: ['**/*.js'], 18 languageOptions: { 19 ecmaVersion: 2022, 20 sourceType: 'script', 21 globals: { 22 console: 'readonly', 23 process: 'readonly', 24 Buffer: 'readonly', 25 __dirname: 'readonly', 26 __filename: 'readonly', 27 module: 'readonly', 28 require: 'readonly', 29 exports: 'readonly', 30 global: 'readonly', 31 setTimeout: 'readonly', 32 }, 33 }, 34 plugins: { 35 prettier: prettierPlugin, 36 }, 37 rules: { 38 'prettier/prettier': 'error', 39 'no-unused-vars': 'warn', 40 'no-console': 'warn', 41 }, 42 }, 43 { 44 files: ['**/*.ts'], 45 plugins: { 46 '@typescript-eslint': tseslint, 47 prettier: prettierPlugin, 48 }, 49 languageOptions: { 50 parser: tsparser, 51 ecmaVersion: 2022, 52 sourceType: 'module', 53 globals: { 54 console: 'readonly', 55 process: 'readonly', 56 Buffer: 'readonly', 57 __dirname: 'readonly', 58 __filename: 'readonly', 59 module: 'readonly', 60 require: 'readonly', 61 exports: 'readonly', 62 global: 'readonly', 63 fetch: 'readonly', 64 // Jest globals 65 describe: 'readonly', 66 test: 'readonly', 67 it: 'readonly', 68 expect: 'readonly', 69 beforeAll: 'readonly', 70 beforeEach: 'readonly', 71 afterAll: 'readonly', 72 afterEach: 'readonly', 73 jest: 'readonly', 74 URLSearchParams: 'readonly', 75 setTimeout: 'readonly', 76 NodeJS: 'readonly', 77 clearTimeout: 'readonly', 78 setImmediate: 'readonly', 79 setInterval: 'readonly', 80 }, 81 }, 82 rules: { 83 'prettier/prettier': 'error', 84 'no-unused-vars': 'off', // Turn off base rule 85 '@typescript-eslint/no-unused-vars': 'warn', 86 'no-console': 'warn', 87 }, 88 }, 89 { 90 files: ['**/*.test.ts', '**/*.spec.ts'], 91 languageOptions: { 92 parser: tsparser, 93 ecmaVersion: 2022, 94 sourceType: 'module', 95 globals: { 96 console: 'readonly', 97 process: 'readonly', 98 Buffer: 'readonly', 99 __dirname: 'readonly', 100 __filename: 'readonly', 101 module: 'readonly', 102 require: 'readonly', 103 exports: 'readonly', 104 global: 'readonly', 105 fetch: 'readonly', 106 // Jest globals 107 describe: 'readonly', 108 test: 'readonly', 109 it: 'readonly', 110 expect: 'readonly', 111 beforeAll: 'readonly', 112 beforeEach: 'readonly', 113 afterAll: 'readonly', 114 afterEach: 'readonly', 115 jest: 'readonly', 116 // Browser globals for e2e tests using Playwright 117 document: 'readonly', 118 window: 'readonly', 119 navigator: 'readonly', 120 location: 'readonly', 121 setTimeout: 'readonly', 122 NodeJS: 'readonly', 123 clearTimeout: 'readonly', 124 }, 125 }, 126 plugins: { 127 '@typescript-eslint': tseslint, 128 prettier: prettierPlugin, 129 }, 130 rules: { 131 'prettier/prettier': 'error', 132 'no-unused-vars': 'off', 133 '@typescript-eslint/no-unused-vars': 'warn', 134 'no-console': 'warn', 135 }, 136 }, 137];