Licence
MIT
Version
1.0.0-alpha.0
Deps
0
Size
103 kB
Vulns
0
Weekly
180
@viclafouch/oxc-config
Oxlint + Oxfmt configuration for modern TypeScript projects.
Installation
npm install -D @viclafouch/oxc-config oxlint oxfmtQuick Setup (React Web)
// oxlint.config.ts
import { defineConfig } from 'oxlint'
import {
typescript,
react,
hooks,
jsxA11y,
imports
} from '@viclafouch/oxc-config'
export default defineConfig({
extends: [typescript, react, hooks, jsxA11y, imports]
})// oxfmt.config.ts
import { defineConfig } from 'oxfmt'
import { oxfmtConfig } from '@viclafouch/oxc-config/formatting'
export default defineConfig(oxfmtConfig)Stack Examples
Pure TypeScript (Node.js, lib)
// oxlint.config.ts
import { defineConfig } from 'oxlint'
import { typescript, imports } from '@viclafouch/oxc-config'
export default defineConfig({
extends: [typescript, imports]
})Next.js
// oxlint.config.ts
import { defineConfig } from 'oxlint'
import {
typescript,
react,
hooks,
jsxA11y,
next,
imports
} from '@viclafouch/oxc-config'
export default defineConfig({
extends: [typescript, react, hooks, jsxA11y, next, imports]
})React Native (Expo)
Requires
eslint-plugin-react-native:npm install -D eslint-plugin-react-native
// oxlint.config.ts
import { defineConfig } from 'oxlint'
import {
typescript,
react,
hooks,
reactNative,
imports
} from '@viclafouch/oxc-config'
export default defineConfig({
extends: [typescript, react, hooks, reactNative, imports]
})Available Configurations
| Config | Description |
|---|---|
typescript |
Required base. TypeScript, core, unicorn, oxc rules |
react |
React rules (JSX, components, patterns) |
hooks |
React Hooks (rules-of-hooks, exhaustive-deps) |
jsxA11y |
Web accessibility (jsx-a11y) — for web projects |
next |
Next.js specific rules |
reactNative |
React Native rules (via jsPlugins) |
imports |
Import rules (no-cycle, no-duplicates, etc.) |
playwright |
Playwright e2e testing (via jsPlugins) |
testingLibrary |
Testing Library rules (via jsPlugins) |
Playwright E2E Testing
Add playwright scoped to your e2e test files:
import { defineConfig } from 'oxlint'
import {
typescript,
react,
hooks,
jsxA11y,
imports,
playwright
} from '@viclafouch/oxc-config'
export default defineConfig({
extends: [typescript, react, hooks, jsxA11y, imports, playwright]
})Testing Library
Add testingLibrary for your test files:
import { defineConfig } from 'oxlint'
import {
typescript,
react,
hooks,
jsxA11y,
imports,
testingLibrary
} from '@viclafouch/oxc-config'
export default defineConfig({
extends: [typescript, react, hooks, jsxA11y, imports, testingLibrary]
})Formatting (oxfmt)
// oxfmt.config.ts
import { defineConfig } from 'oxfmt'
import { oxfmtConfig } from '@viclafouch/oxc-config/formatting'
export default defineConfig(oxfmtConfig)To override a specific option:
import { defineConfig } from 'oxfmt'
import { oxfmtConfig } from '@viclafouch/oxc-config/formatting'
export default defineConfig({
...oxfmtConfig,
printWidth: 100
})Import sorting is opt-in:
import { defineConfig } from 'oxfmt'
import {
oxfmtConfig,
sortImportsConfig
} from '@viclafouch/oxc-config/formatting'
export default defineConfig({
...oxfmtConfig,
sortImports: sortImportsConfig
})Scripts
{
"type": "module",
"scripts": {
"lint": "oxlint",
"lint:fix": "oxlint --fix && oxfmt '**/*.{ts,tsx,js,jsx}'",
"format": "oxfmt '**/*.{ts,tsx,js,jsx}'",
"format:check": "oxfmt --check '**/*.{ts,tsx,js,jsx}'"
}
}If your project also runs tsc:
{
"scripts": {
"lint": "tsc --noEmit && oxlint",
"lint:fix": "tsc --noEmit && oxlint --fix && oxfmt '**/*.{ts,tsx,js,jsx}'"
}
}VS Code
- Install the Oxc extension
- Add to
.vscode/settings.json:
{
"editor.codeActionsOnSave": {
"source.fixAll.oxc": "explicit"
},
"editor.defaultFormatter": "oxc.oxc-vscode",
"editor.formatOnSave": true
}Configuration Hierarchy
typescript(always first — base rules)react/hooks/jsxA11y/next/reactNativeimportsplaywright/testingLibrary(testing)
Requirements
oxlint>= 1.57oxfmt>= 1.0typescript>= 5- Node.js >= 22.18 (for
.config.tssupport)
Gaps
See GAPS.md for rules not available in oxlint.
jsPlugins
Three configs use external plugins (install only the ones you need):
npm install -D eslint-plugin-react-native # for reactNative
npm install -D eslint-plugin-playwright # for playwright
npm install -D eslint-plugin-testing-library # for testingLibraryThese are listed as optional peerDependencies.