blob: 7691eb37425f5f2825ae29157ad1f6204d041e8b [file] [log] [blame]
Adrià Vilanova Martínez673abe72024-05-11 12:21:01 +02001const js = require('@eslint/js');
2const globals = require('globals');
Adrià Vilanova Martíneza7b300c2024-05-31 20:58:14 +02003const tseslint = require('typescript-eslint');
Adrià Vilanova Martínez01038b22025-04-05 17:20:01 +02004const vitest = require('@vitest/eslint-plugin');
Adrià Vilanova Martínez673abe72024-05-11 12:21:01 +02005
6module.exports = [
7 js.configs.recommended,
Adrià Vilanova Martíneza7b300c2024-05-31 20:58:14 +02008 ...tseslint.configs.recommended,
Adrià Vilanova Martínez673abe72024-05-11 12:21:01 +02009 {
Adrià Vilanova Martíneza7b300c2024-05-31 20:58:14 +020010 ignores: [
11 '**/*.js',
12 '**/*.mjs',
13 'dist/',
14 'out/',
15 'src/lit-locales/generated/',
16 ],
17 },
18 {
19 ignores: ['webpack.config.js'],
Adrià Vilanova Martínez673abe72024-05-11 12:21:01 +020020 languageOptions: {
21 ecmaVersion: 'latest',
22 sourceType: 'module',
23 globals: {
24 PRODUCTION: 'readonly',
25 ...globals.browser,
26 ...globals.webextensions,
27 },
28 },
Adrià Vilanova Martínez673abe72024-05-11 12:21:01 +020029 },
30 {
Adrià Vilanova Martíneza7b300c2024-05-31 20:58:14 +020031 files: ['**/*.test.ts'],
Adrià Vilanova Martínez01038b22025-04-05 17:20:01 +020032 plugins: {
33 vitest,
34 },
35 rules: {
36 ...vitest.configs.recommended.rules,
37 'vitest/expect-expect': [
38 'error',
39 {
40 assertFunctionNames: [
41 // Default options
42 // See https://github.com/vitest-dev/eslint-plugin-vitest/blob/f08b810c8dce545ebd79e025b297d15c99f36d9a/src/rules/expect-expect.ts#L43
43 'expect',
44 'assert',
45
46 // Custom conventions for helper functions.
47 'check*',
48 ],
49 },
50 ],
Adrià Vilanova Martínez673abe72024-05-11 12:21:01 +020051 },
52 },
53];