-
Notifications
You must be signed in to change notification settings - Fork 7
Open
Labels
enhancementNew feature or requestNew feature or request
Description
- update to the latest versions
- make it much stricter
export default defineConfig(
// Base rules.
eslint.configs.recommended,
tseslint.configs.strictTypeChecked,
// Overrides.
{
linterOptions: {
reportUnusedDisableDirectives: 'error',
reportUnusedInlineConfigs: 'error',
},
languageOptions: {
globals: globals.builtin,
parserOptions: {
projectService: true,
},
},
plugins: {
unicorn,
'import-x': importX,
},
settings: {
'import-x/resolver-next': [createTypeScriptImportResolver(), createNodeResolver()],
},
rules: {
// Stricter ESLint core rules.
eqeqeq: 'error',
curly: ['error', 'all'],
'no-eval': 'error',
'no-implied-eval': 'error',
'no-lone-blocks': 'error',
'no-unassigned-vars': 'error',
'no-unreachable-loop': 'error',
'no-useless-assignment': 'error',
'no-useless-call': 'error',
'no-useless-computed-key': 'error',
'no-useless-concat': 'error',
'no-useless-rename': 'error',
'no-var': 'error',
'object-shorthand': 'error',
'prefer-arrow-callback': 'error',
'prefer-const': 'error',
'prefer-rest-params': 'error',
radix: 'error',
// Slightly loosened TSESLint rules.
'@typescript-eslint/no-misused-promises': [
'error',
{
checksVoidReturn: false,
},
],
'@typescript-eslint/no-confusing-void-expression': [
'error',
{
ignoreArrowShorthand: true,
},
],
// Stylistic rules.
'@typescript-eslint/consistent-type-imports': [
'error',
{
fixStyle: 'inline-type-imports',
},
],
'@typescript-eslint/naming-convention': [
'error',
{
selector: 'typeLike',
format: ['PascalCase'],
},
],
'no-restricted-syntax': [
'error',
{
selector: 'TSEnumDeclaration',
message: 'Enums are not allowed. Use union types instead.',
},
],
'unicorn/filename-case': [
'error',
{
case: 'kebabCase',
},
],
// Import rules.
'import-x/no-cycle': 'error',
'import-x/no-unresolved': 'error',
'import-x/no-extraneous-dependencies': 'error',
'import-x/no-duplicates': ['error', { 'prefer-inline': true }],
},
},
// Production files.
{
files: ['**/src/*.[tj]s?(x)'],
rules: {
// Disallow importing dev dependencies in production files.
'import-x/no-extraneous-dependencies': [
'error',
{
devDependencies: false,
includeTypes: true,
},
],
},
},
globalIgnores(['**/dist', '**/.turbo']),
);Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request