Skip to content

Commit

Permalink
chore: Migrate to ESLint flat config (#1846)
Browse files Browse the repository at this point in the history
* chore: Migrate to ESLint flat config

* Add knip.json
  • Loading branch information
lachlancollins authored Jun 28, 2024
1 parent 7d8d3e0 commit 4310311
Show file tree
Hide file tree
Showing 61 changed files with 871 additions and 546 deletions.
119 changes: 0 additions & 119 deletions .eslintrc.cjs

This file was deleted.

17 changes: 17 additions & 0 deletions eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// @ts-check

// @ts-ignore Needed due to moduleResolution Node vs Bundler
import { tanstackConfig } from '@tanstack/config/eslint'

export default [
...tanstackConfig,
{
name: 'tanstack/local',
rules: {
'ts/ban-types': 'off',
'ts/require-await': 'off',
'no-empty': 'off',
'no-prototype-builtins': 'off',
},
},
]
2 changes: 1 addition & 1 deletion examples/react/basic/src/main.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ const fetchPosts = async () => {
await new Promise((r) => setTimeout(r, 300))
return (
axios
/* eslint-disable-next-line @typescript-eslint/array-type */
/* eslint-disable-next-line ts/array-type */
.get<PostType[]>('https://jsonplaceholder.typicode.com/posts')
.then((r) => r.data.slice(0, 10))
)
Expand Down
4 changes: 4 additions & 0 deletions knip.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"$schema": "https://unpkg.com/knip@5/schema.json",
"ignoreWorkspaces": ["examples/**"]
}
5 changes: 2 additions & 3 deletions nx.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
"parallel": 5,
"namedInputs": {
"sharedGlobals": [
"{workspaceRoot}/.eslintrc.cjs",
"{workspaceRoot}/.nvmrc",
"{workspaceRoot}/eslint.config.js",
"{workspaceRoot}/package.json",
"{workspaceRoot}/tsconfig.json"
],
Expand All @@ -20,8 +20,7 @@
"default",
"{projectRoot}/build",
"{projectRoot}/dist",
"!{projectRoot}/.eslintrc.cjs",
"!{projectRoot}/tsconfig.eslint.json"
"!{projectRoot}/eslint.config.js"
]
},
"targetDefaults": {
Expand Down
14 changes: 3 additions & 11 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,19 +37,13 @@
},
"namespace": "@tanstack",
"devDependencies": {
"@eslint-react/eslint-plugin": "^1.5.16",
"@rollup/plugin-replace": "^5.0.7",
"@tanstack/config": "^0.7.11",
"@types/eslint": "^8.56.10",
"@tanstack/config": "^0.8.6",
"@types/node": "^20.14.7",
"@types/react": "^18.3.3",
"@types/react-dom": "^18.3.0",
"@typescript-eslint/eslint-plugin": "^7.13.1",
"@typescript-eslint/parser": "^7.13.1",
"eslint": "^8.56.0",
"eslint-config-prettier": "^9.1.0",
"eslint-import-resolver-typescript": "^3.6.1",
"eslint-plugin-import": "^2.29.1",
"eslint-plugin-react": "^7.34.3",
"eslint": "^8.57.0",
"eslint-plugin-react-hooks": "^4.6.2",
"glob": "^10.4.2",
"nx": "^19.3.0",
Expand All @@ -68,8 +62,6 @@
},
"pnpm": {
"overrides": {
"@typescript-eslint/eslint-plugin": "$@typescript-eslint/eslint-plugin",
"@typescript-eslint/parser": "$@typescript-eslint/parser",
"eslint": "$eslint",
"use-sync-external-store": "1.2.0",
"@tanstack/history": "workspace:*",
Expand Down
6 changes: 0 additions & 6 deletions packages/history/.eslintrc.cjs

This file was deleted.

5 changes: 5 additions & 0 deletions packages/history/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
// @ts-check

import rootConfig from '../../eslint.config.js'

export default [...rootConfig]
2 changes: 1 addition & 1 deletion packages/history/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
"sideEffects": false,
"scripts": {
"clean": "rimraf ./dist && rimraf ./coverage",
"test:eslint": "eslint --ext .ts,.tsx ./src",
"test:eslint": "eslint ./src",
"test:types": "tsc --noEmit",
"test:build": "publint --strict",
"build": "vite build"
Expand Down
2 changes: 1 addition & 1 deletion packages/history/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ const beforeUnloadEvent = 'beforeunload'

const beforeUnloadListener = (event: Event) => {
event.preventDefault()
// @ts-ignore
// @ts-expect-error
return (event.returnValue = '')
}

Expand Down
4 changes: 2 additions & 2 deletions packages/history/vite.config.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import { defineConfig, mergeConfig } from 'vitest/config'
import { tanstackBuildConfig } from '@tanstack/config/build'
import { tanstackViteConfig } from '@tanstack/config/vite'

const config = defineConfig({})

export default mergeConfig(
config,
tanstackBuildConfig({
tanstackViteConfig({
entry: './src/index.ts',
srcDir: './src',
}),
Expand Down
6 changes: 0 additions & 6 deletions packages/react-cross-context/.eslintrc.cjs

This file was deleted.

5 changes: 5 additions & 0 deletions packages/react-cross-context/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
// @ts-check

import rootConfig from '../../eslint.config.js'

export default [...rootConfig]
2 changes: 1 addition & 1 deletion packages/react-cross-context/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
"sideEffects": false,
"scripts": {
"clean": "rimraf ./dist && rimraf ./coverage",
"test:eslint": "eslint --ext .ts,.tsx ./src",
"test:eslint": "eslint ./src",
"test:types": "tsc --noEmit",
"test:build": "publint --strict",
"build": "vite build"
Expand Down
4 changes: 2 additions & 2 deletions packages/react-cross-context/vite.config.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { defineConfig, mergeConfig } from 'vitest/config'
import { tanstackBuildConfig } from '@tanstack/config/build'
import { tanstackViteConfig } from '@tanstack/config/vite'
import react from '@vitejs/plugin-react'

const config = defineConfig({
Expand All @@ -8,7 +8,7 @@ const config = defineConfig({

export default mergeConfig(
config,
tanstackBuildConfig({
tanstackViteConfig({
entry: './src/index.ts',
srcDir: './src',
}),
Expand Down
12 changes: 0 additions & 12 deletions packages/react-router/.eslintrc.cjs

This file was deleted.

32 changes: 32 additions & 0 deletions packages/react-router/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
// @ts-check

import pluginReact from '@eslint-react/eslint-plugin'
// @ts-expect-error
import pluginReactHooks from 'eslint-plugin-react-hooks'
import rootConfig from '../../eslint.config.js'

export default [
...rootConfig,
{
files: ['**/*.{ts,tsx}'],
...pluginReact.configs.recommended,
},
{
plugins: {
'react-hooks': pluginReactHooks,
},
rules: {
'@eslint-react/no-unstable-context-value': 'off',
'@eslint-react/no-unstable-default-props': 'off',
'@eslint-react/dom/no-missing-button-type': 'off',
'react-hooks/exhaustive-deps': 'error',
'react-hooks/rules-of-hooks': 'error',
},
},
{
files: ['**/__tests__/**'],
rules: {
'ts/no-unnecessary-condition': 'off',
},
},
]
2 changes: 1 addition & 1 deletion packages/react-router/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
"sideEffects": false,
"scripts": {
"clean": "rimraf ./dist && rimraf ./coverage",
"test:eslint": "eslint --ext .ts,.tsx ./src",
"test:eslint": "eslint ./src",
"test:types": "tsc --noEmit",
"test:unit": "vitest --typecheck",
"test:unit:dev": "pnpm run test:unit --watch",
Expand Down
2 changes: 1 addition & 1 deletion packages/react-router/src/Matches.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -369,7 +369,7 @@ function MatchInner({ matchId }: { matchId: string }): any {
throw match.loadPromise
}

// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
// eslint-disable-next-line ts/no-unnecessary-condition
if (match.status === 'success') {
const Comp = route.options.component ?? router.options.defaultComponent

Expand Down
2 changes: 1 addition & 1 deletion packages/react-router/src/RouterProvider.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// eslint-disable-next-line @typescript-eslint/consistent-type-imports
// eslint-disable-next-line ts/consistent-type-imports
import * as React from 'react'
import { Matches } from './Matches'
import { getRouterContext } from './routerContext'
Expand Down
2 changes: 1 addition & 1 deletion packages/react-router/src/defer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ export function defer<T>(
) {
const promise = _promise as DeferredPromise<T>

// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
// eslint-disable-next-line ts/no-unnecessary-condition
if (!promise.__deferredState) {
promise.__deferredState = {
uid: Math.random().toString(36).slice(2),
Expand Down
2 changes: 1 addition & 1 deletion packages/react-router/src/not-found.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// eslint-disable-next-line @typescript-eslint/consistent-type-imports
// eslint-disable-next-line ts/consistent-type-imports
import * as React from 'react'
import { CatchBoundary } from './CatchBoundary'
import { useRouterState } from './useRouterState'
Expand Down
Loading

0 comments on commit 4310311

Please sign in to comment.