refine eslint rule migration for app

This commit is contained in:
mahula 2025-09-29 12:33:07 +02:00
parent 1936e5f1db
commit 97a9bd7775
7 changed files with 21 additions and 6 deletions

View File

@ -68,7 +68,8 @@ export default tseslint.config(
'semi': ['error', 'never'],
'quotes': ['error', 'single', { avoidEscape: true }],
'comma-dangle': ['error', 'always-multiline'],
'space-before-function-paren': ['error', 'always'],
// Disabled: conflicts with common TypeScript/React patterns
// 'space-before-function-paren': ['error', 'always'],
'keyword-spacing': ['error', { before: true, after: true }],
'space-infix-ops': 'error',
'eol-last': ['error', 'always'],
@ -80,8 +81,15 @@ export default tseslint.config(
// Disable indent rule due to known issues with TypeScript/JSX
// 'indent': ['error', 2],
'linebreak-style': ['error', 'unix'],
// Additional standard rules that were missing
'eqeqeq': ['error', 'always', { null: 'ignore' }],
'new-cap': ['error', { newIsCap: true, capIsNew: false, properties: true }],
'array-callback-return': ['error', { allowImplicit: false, checkForEach: false }],
// React rules
'react/react-in-jsx-scope': 'off',
'react/no-unescaped-entities': 'error',
'react-hooks/rules-of-hooks': 'error',
'react-hooks/exhaustive-deps': 'warn',
'react-refresh/only-export-components': ['warn', { allowConstantExport: true }],
@ -174,11 +182,16 @@ export default tseslint.config(
// TypeScript configs (applied after main config)
...tseslint.configs.recommended,
...tseslint.configs.strict,
...tseslint.configs.stylistic,
// TypeScript type-checking configuration
{
files: ['**/*.{ts,tsx}'],
extends: [...tseslint.configs.recommendedTypeChecked],
extends: [
...tseslint.configs.recommendedTypeChecked,
...tseslint.configs.strictTypeChecked,
...tseslint.configs.stylisticTypeChecked,
],
languageOptions: {
parserOptions: {
project: ['./tsconfig.json'],
@ -190,6 +203,9 @@ export default tseslint.config(
'@typescript-eslint/no-floating-promises': ['error', { ignoreVoid: true }],
'no-void': ['error', { allowAsStatement: true }],
// Disable empty function rule - legitimate use in React contexts and empty constructors
'@typescript-eslint/no-empty-function': 'off',
// Configure no-unused-expressions to allow logical AND and ternary patterns
'@typescript-eslint/no-unused-expressions': ['error', {
allowShortCircuit: true,

View File

@ -21,6 +21,7 @@ export class layersApi {
{ itemType: ['*.*', { profileTemplate: ['*', 'item.*.*.*.*'] }] },
{ markerIcon: ['*'] } as any,
],
// eslint-disable-next-line camelcase
filter: { maps: { maps_id: { id: { _eq: this.mapId } } } },
limit: 500,
sort: ['sort'],

View File

@ -1,6 +1,5 @@
/* eslint-disable @typescript-eslint/no-explicit-any */
/* eslint-disable @typescript-eslint/no-useless-constructor */
/* eslint-disable @typescript-eslint/no-empty-function */
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
/* eslint-disable no-console */
import { readPermissions } from '@directus/sdk'

View File

@ -1,5 +1,5 @@
/* eslint-disable no-console */
/* eslint-disable @typescript-eslint/no-unsafe-return */
// /* eslint-disable @typescript-eslint/no-unsafe-return */
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
/* eslint-disable @typescript-eslint/no-explicit-any */
import axios from 'axios'

View File

@ -3,7 +3,6 @@
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
/* eslint-disable no-console */
/* eslint-disable @typescript-eslint/no-explicit-any */
/* eslint-disable @typescript-eslint/no-unsafe-return */
import { createUser, passwordRequest, passwordReset, readMe, updateMe } from '@directus/sdk'
import { directusClient } from './directus'

View File

@ -2,7 +2,6 @@
/* eslint-disable @typescript-eslint/no-explicit-any */
/* eslint-disable import/no-relative-parent-imports */
/* eslint-disable new-cap */
/* eslint-disable @typescript-eslint/no-empty-function */
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
import { useEffect, useState } from 'react'

View File

@ -1,3 +1,4 @@
/* eslint-disable camelcase */
import type { Item, Tag } from 'utopia-ui'
export const tags: Tag[] = [