Skip to content

Commit 64e10c7

Browse files
committed
Introduce Oxlint alongside ESLint 🎉
Oxlint isn't mature enough, and disabling ESLint rules using eslint-plugin-oxlint doesn't improve performance at all. So, let's just experiment with it for now.
1 parent e1254c0 commit 64e10c7

6 files changed

Lines changed: 186 additions & 5 deletions

File tree

‎.oxlintrc.json‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"$schema": "https://raw.githubusercontent.com/oxc-project/oxc/refs/tags/oxlint_v1.13.0/npm/oxlint/configuration_schema.json",
3+
"plugins": ["typescript", "unicorn", "react", "nextjs", "import", "oxc", "node", "promise", "vitest"],
4+
"rules": {
5+
"typescript/no-redundant-type-constituents": "off", // This is bugged
6+
"typescript/no-confusing-void-expression": "off",
7+
"typescript/no-import-type-side-effects": "error"
8+
}
9+
}

‎imports/dashboard/dashboardAppMenu.tsx‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,15 +45,15 @@ const DashboardAppMenu = ({
4545
Object.keys(servers.nodes[node]).map(app => (
4646
<MenuItem
4747
dense={dense}
48-
key={app}
48+
key={node + '-' + app}
4949
selected={app === server && node === 'machine1'}
5050
onClick={handleClick(app, node)}
5151
>
5252
{app}
5353
</MenuItem>
5454
))
5555
) : (
56-
<MenuItem dense={dense} disabled>
56+
<MenuItem key={node + '-error'} dense={dense} disabled>
5757
Failed to fetch!
5858
</MenuItem>
5959
),

‎imports/dashboard/files/editor.tsx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ const Editor = (props: {
8989
height='65vh'
9090
value={content}
9191
theme={(useTheme().palette.mode === 'dark' ? materialDark : materialLight) as Extension}
92-
extensions={[...(language ? [language] : [])]}
92+
extensions={language ? [language] : []}
9393
onChange={value => setContent(value)}
9494
/>
9595
</div>

‎imports/helpers/unstyledLink.tsx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ const UnstyledLink = (
77
React.PropsWithChildren &
88
React.RefAttributes<HTMLAnchorElement>,
99
): React.JSX.Element => (
10-
<Link {...props} style={{ textDecoration: 'none', color: 'inherit', ...(props.style ?? {}) }} />
10+
<Link {...props} style={{ textDecoration: 'none', color: 'inherit', ...props.style }} />
1111
)
1212

1313
export default UnstyledLink

‎package.json‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"start": "next start",
1616
"export": "NEXT_OUTPUT=export next build $@ && echo > out/.placeholder",
1717
"prepare": "husky install",
18-
"lint": "tsc --noEmit && biome check && eslint --cache --cache-strategy content --cache-location .next/ ."
18+
"lint": "tsc --noEmit && oxlint --type-aware --deny-warnings && eslint --cache --cache-strategy content --cache-location .next/ . && biome check"
1919
},
2020
"dependencies": {
2121
"@babel/runtime": "^7.27.6",
@@ -67,6 +67,8 @@
6767
"husky": "^9.1.7",
6868
"jsdom": "^26.1.0",
6969
"next-router-mock": "^1.0.2",
70+
"oxlint": "^1.13.0",
71+
"oxlint-tsgolint": "^0.0.4",
7072
"typescript": "^5.8.3",
7173
"typescript-eslint": "^8.35.1",
7274
"vite": "^7.0.2",

‎yarn.lock‎

Lines changed: 170 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2138,6 +2138,104 @@ __metadata:
21382138
languageName: node
21392139
linkType: hard
21402140

2141+
"@oxlint-tsgolint/darwin-arm64@npm:0.0.4":
2142+
version: 0.0.4
2143+
resolution: "@oxlint-tsgolint/darwin-arm64@npm:0.0.4"
2144+
conditions: os=darwin & cpu=arm64
2145+
languageName: node
2146+
linkType: hard
2147+
2148+
"@oxlint-tsgolint/darwin-x64@npm:0.0.4":
2149+
version: 0.0.4
2150+
resolution: "@oxlint-tsgolint/darwin-x64@npm:0.0.4"
2151+
conditions: os=darwin & cpu=x64
2152+
languageName: node
2153+
linkType: hard
2154+
2155+
"@oxlint-tsgolint/linux-arm64@npm:0.0.4":
2156+
version: 0.0.4
2157+
resolution: "@oxlint-tsgolint/linux-arm64@npm:0.0.4"
2158+
conditions: os=linux & cpu=arm64
2159+
languageName: node
2160+
linkType: hard
2161+
2162+
"@oxlint-tsgolint/linux-x64@npm:0.0.4":
2163+
version: 0.0.4
2164+
resolution: "@oxlint-tsgolint/linux-x64@npm:0.0.4"
2165+
conditions: os=linux & cpu=x64
2166+
languageName: node
2167+
linkType: hard
2168+
2169+
"@oxlint-tsgolint/win32-arm64@npm:0.0.4":
2170+
version: 0.0.4
2171+
resolution: "@oxlint-tsgolint/win32-arm64@npm:0.0.4"
2172+
conditions: os=win32 & cpu=arm64
2173+
languageName: node
2174+
linkType: hard
2175+
2176+
"@oxlint-tsgolint/win32-x64@npm:0.0.4":
2177+
version: 0.0.4
2178+
resolution: "@oxlint-tsgolint/win32-x64@npm:0.0.4"
2179+
conditions: os=win32 & cpu=x64
2180+
languageName: node
2181+
linkType: hard
2182+
2183+
"@oxlint/darwin-arm64@npm:1.13.0":
2184+
version: 1.13.0
2185+
resolution: "@oxlint/darwin-arm64@npm:1.13.0"
2186+
conditions: os=darwin & cpu=arm64
2187+
languageName: node
2188+
linkType: hard
2189+
2190+
"@oxlint/darwin-x64@npm:1.13.0":
2191+
version: 1.13.0
2192+
resolution: "@oxlint/darwin-x64@npm:1.13.0"
2193+
conditions: os=darwin & cpu=x64
2194+
languageName: node
2195+
linkType: hard
2196+
2197+
"@oxlint/linux-arm64-gnu@npm:1.13.0":
2198+
version: 1.13.0
2199+
resolution: "@oxlint/linux-arm64-gnu@npm:1.13.0"
2200+
conditions: os=linux & cpu=arm64 & libc=glibc
2201+
languageName: node
2202+
linkType: hard
2203+
2204+
"@oxlint/linux-arm64-musl@npm:1.13.0":
2205+
version: 1.13.0
2206+
resolution: "@oxlint/linux-arm64-musl@npm:1.13.0"
2207+
conditions: os=linux & cpu=arm64 & libc=musl
2208+
languageName: node
2209+
linkType: hard
2210+
2211+
"@oxlint/linux-x64-gnu@npm:1.13.0":
2212+
version: 1.13.0
2213+
resolution: "@oxlint/linux-x64-gnu@npm:1.13.0"
2214+
conditions: os=linux & cpu=x64 & libc=glibc
2215+
languageName: node
2216+
linkType: hard
2217+
2218+
"@oxlint/linux-x64-musl@npm:1.13.0":
2219+
version: 1.13.0
2220+
resolution: "@oxlint/linux-x64-musl@npm:1.13.0"
2221+
conditions: os=linux & cpu=x64 & libc=musl
2222+
languageName: node
2223+
linkType: hard
2224+
2225+
"@oxlint/win32-arm64@npm:1.13.0":
2226+
version: 1.13.0
2227+
resolution: "@oxlint/win32-arm64@npm:1.13.0"
2228+
conditions: os=win32 & cpu=arm64
2229+
languageName: node
2230+
linkType: hard
2231+
2232+
"@oxlint/win32-x64@npm:1.13.0":
2233+
version: 1.13.0
2234+
resolution: "@oxlint/win32-x64@npm:1.13.0"
2235+
conditions: os=win32 & cpu=x64
2236+
languageName: node
2237+
linkType: hard
2238+
21412239
"@pkgjs/parseargs@npm:^0.11.0":
21422240
version: 0.11.0
21432241
resolution: "@pkgjs/parseargs@npm:0.11.0"
@@ -3703,6 +3801,8 @@ __metadata:
37033801
lodash: "npm:^4.17.21"
37043802
next: "npm:^15.3.5"
37053803
next-router-mock: "npm:^1.0.2"
3804+
oxlint: "npm:^1.13.0"
3805+
oxlint-tsgolint: "npm:^0.0.4"
37063806
react: "npm:^19.1.0"
37073807
react-dom: "npm:^19.1.0"
37083808
react-virtualized-auto-sizer: "npm:^1.0.26"
@@ -6075,6 +6175,76 @@ __metadata:
60756175
languageName: node
60766176
linkType: hard
60776177

6178+
"oxlint-tsgolint@npm:^0.0.4":
6179+
version: 0.0.4
6180+
resolution: "oxlint-tsgolint@npm:0.0.4"
6181+
dependencies:
6182+
"@oxlint-tsgolint/darwin-arm64": "npm:0.0.4"
6183+
"@oxlint-tsgolint/darwin-x64": "npm:0.0.4"
6184+
"@oxlint-tsgolint/linux-arm64": "npm:0.0.4"
6185+
"@oxlint-tsgolint/linux-x64": "npm:0.0.4"
6186+
"@oxlint-tsgolint/win32-arm64": "npm:0.0.4"
6187+
"@oxlint-tsgolint/win32-x64": "npm:0.0.4"
6188+
dependenciesMeta:
6189+
"@oxlint-tsgolint/darwin-arm64":
6190+
optional: true
6191+
"@oxlint-tsgolint/darwin-x64":
6192+
optional: true
6193+
"@oxlint-tsgolint/linux-arm64":
6194+
optional: true
6195+
"@oxlint-tsgolint/linux-x64":
6196+
optional: true
6197+
"@oxlint-tsgolint/win32-arm64":
6198+
optional: true
6199+
"@oxlint-tsgolint/win32-x64":
6200+
optional: true
6201+
bin:
6202+
tsgolint: bin/tsgolint.js
6203+
checksum: 10c0/7e854c847cf66d8286a7385ffae8ebbccaf641f2acb658f152d423157bdd5bb9478d5b7fe04ade253014a5a2edad63ed6462b13c6f045cbe27c465c8d76f6ad7
6204+
languageName: node
6205+
linkType: hard
6206+
6207+
"oxlint@npm:^1.13.0":
6208+
version: 1.13.0
6209+
resolution: "oxlint@npm:1.13.0"
6210+
dependencies:
6211+
"@oxlint/darwin-arm64": "npm:1.13.0"
6212+
"@oxlint/darwin-x64": "npm:1.13.0"
6213+
"@oxlint/linux-arm64-gnu": "npm:1.13.0"
6214+
"@oxlint/linux-arm64-musl": "npm:1.13.0"
6215+
"@oxlint/linux-x64-gnu": "npm:1.13.0"
6216+
"@oxlint/linux-x64-musl": "npm:1.13.0"
6217+
"@oxlint/win32-arm64": "npm:1.13.0"
6218+
"@oxlint/win32-x64": "npm:1.13.0"
6219+
peerDependencies:
6220+
oxlint-tsgolint: ">=0.0.4"
6221+
dependenciesMeta:
6222+
"@oxlint/darwin-arm64":
6223+
optional: true
6224+
"@oxlint/darwin-x64":
6225+
optional: true
6226+
"@oxlint/linux-arm64-gnu":
6227+
optional: true
6228+
"@oxlint/linux-arm64-musl":
6229+
optional: true
6230+
"@oxlint/linux-x64-gnu":
6231+
optional: true
6232+
"@oxlint/linux-x64-musl":
6233+
optional: true
6234+
"@oxlint/win32-arm64":
6235+
optional: true
6236+
"@oxlint/win32-x64":
6237+
optional: true
6238+
peerDependenciesMeta:
6239+
oxlint-tsgolint:
6240+
optional: true
6241+
bin:
6242+
oxc_language_server: bin/oxc_language_server
6243+
oxlint: bin/oxlint
6244+
checksum: 10c0/e9cd7e23f60ab7dfe37529a4c36ffd8c45165744dc5483af049df04b51ff09fd0e1b57679a05010c37c78419ee573d5749b3e0e5268a31fea7a2daa29e1105f2
6245+
languageName: node
6246+
linkType: hard
6247+
60786248
"p-limit@npm:^3.0.2":
60796249
version: 3.1.0
60806250
resolution: "p-limit@npm:3.1.0"

0 commit comments

Comments
 (0)