@nice-move/eslint-config-base
Version:
A `eslint` config for best practice
62 lines (58 loc) • 2.03 kB
JavaScript
import tseslint from 'typescript-eslint';
const match = ['**/*.ts', '**/*.tsx', '**/*.mts', '**/*.cts'];
export default [
...tseslint.configs.strict.map((config) => ({
...config,
files: match,
})),
{
files: match,
// extends: [
// 'airbnb-typescript',
// ],
rules: {
'@typescript-eslint/no-array-constructor': 'error',
'@typescript-eslint/no-duplicate-enum-values': 'error',
'@typescript-eslint/no-dynamic-delete': 'error',
'@typescript-eslint/no-extra-non-null-assertion': 'error',
'@typescript-eslint/no-extraneous-class': 'error',
'@typescript-eslint/no-invalid-void-type': 'error',
'@typescript-eslint/no-misused-new': 'error',
'@typescript-eslint/no-namespace': 'error',
'@typescript-eslint/no-non-null-asserted-nullish-coalescing': 'error',
'@typescript-eslint/no-non-null-asserted-optional-chain': 'error',
'@typescript-eslint/no-non-null-assertion': 'error',
'@typescript-eslint/no-this-alias': 'error',
'@typescript-eslint/no-unnecessary-type-constraint': 'error',
'@typescript-eslint/no-unsafe-declaration-merging': 'error',
'@typescript-eslint/no-useless-constructor': 'error',
'@typescript-eslint/prefer-as-const': 'error',
'@typescript-eslint/prefer-literal-enum-member': 'error',
'@typescript-eslint/triple-slash-reference': 'error',
'@typescript-eslint/unified-signatures': 'error',
'@typescript-eslint/no-explicit-any': 'warn',
'@typescript-eslint/no-empty-function': 0,
'@typescript-eslint/no-unused-vars': [
'warn',
{
argsIgnorePattern: '^_+$',
ignoreRestSiblings: true,
reportUsedIgnorePattern: true,
varsIgnorePattern: '^_+$',
},
],
},
},
{
files: ['**/*.cts'],
rules: {
'@typescript-eslint/no-require-imports': 0,
},
},
{
files: ['**/*.d.cts', '**/*.d.cts', '**/*.d.mts'],
rules: {
'no-use-before-define': 0,
},
},
];