Repository navigation
Expand file tree
/
Copy patheslint.config.mjs
More file actions
79 lines (74 loc) · 2.31 KB
/
Copy patheslint.config.mjs
File metadata and controls
79 lines (74 loc) · 2.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
/**
* THIS FILE WAS AUTO-GENERATED.
* PLEASE DO NOT EDIT IT MANUALLY.
* ===============================
* IF YOU COPY THIS INTO AN ESLINT CONFIG, REMOVE THIS COMMENT BLOCK.
*/
import js from '@eslint/js';
import { defineConfig } from 'eslint/config';
import { configs, plugins, rules } from 'eslint-config-airbnb-extended';
import chaiFriendly from 'eslint-plugin-chai-friendly';
const jsConfig = defineConfig([
// ESLint recommended config
{
name: 'js/config',
...js.configs.recommended,
},
// Stylistic plugin
plugins.stylistic,
// Import X plugin
plugins.importX,
// Airbnb base recommended config
...configs.base.recommended,
// Strict import rules
rules.base.importsStrict,
]);
const nodeConfig = defineConfig([
// Node plugin
plugins.node,
// Airbnb Node recommended config
...configs.node.recommended,
]);
const typescriptConfig = defineConfig([
// TypeScript ESLint plugin
plugins.typescriptEslint,
// Airbnb base TypeScript config
...configs.base.typescript,
// Strict TypeScript rules
rules.typescript.typescriptEslintStrict,
]);
export default defineConfig([
// JavaScript config
...jsConfig,
// Node config
...nodeConfig,
// TypeScript config
...typescriptConfig,
// Chai friendly plugin
chaiFriendly.configs.recommendedFlat,
// Custom overrides
{
rules: {
'@stylistic/indent': ['error', 4],
'no-underscore-dangle': 'off',
'no-bitwise': ['error', { allow: ['<<', '&', '|=', '|'] }],
'max-classes-per-file': 'off',
'n/no-sync': 'off',
'@typescript-eslint/no-use-before-define': 'off',
'eol-last': ['error', 'always'],
'import-x/prefer-default-export': 'off',
'@typescript-eslint/no-explicit-any': 'off',
'import-x/no-cycle': 'warn',
'@typescript-eslint/unified-signatures': 'off',
// We use empty inherited interface and decorator to merge implementation of mixin
'@typescript-eslint/no-empty-object-type': 'off',
'@typescript-eslint/no-unsafe-declaration-merging': 'off',
},
},
{
files: ['test/**'],
rules: {
'@typescript-eslint/no-non-null-assertion': 'off',
},
},
]);